如果EF中的父实体不是子实体,如何验证
本文关键字:实体 何验证 验证 EF 如果 | 更新日期: 2023-09-27 18:29:40
假设我有一对多关系表(Ex User-Rent)
public class User
{
public string UserName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public virtual ICollection<Rent> Rents { get; set; }
}
public class Rent
{
public Int64 VideoId { get; set; }
public Int64 UserId { get; set; }
public virtual User User{get; set;}
public int RentingLength { get; set; }
public int RentingCost { get; set; }
}
我想删除一条User
记录。在此之前,我想检查User
是否有对Rent
的引用。
我拥有的是:
context.Users.Include("Rents").ToList();
则检查CCD_ 4列表是否为空。
有更好的方法吗?
谢谢。
context.Users.Include("Rents").ToList();
将实现您的查询,获取所有用户。最好的方式应该是context.Rent.Where(r => r.userId == DesiredUserId).Any()
。如果true
,则用户有租金。
您在导航属性中使用Virtual关键字,这意味着租金将自动包含在您的用户查询中。因此,您不需要显式包含。
所以你可以直接做
context.Users.Find(Id)
它还将包括主密钥id为的用户的Rent
像这样使用Any
检查记录是否退出
public bool Exists(int YourUserId)
{
dbcontext.Rent.Any(e => e.UserId == YourUserId);
}