C# 具有指示一对多关系计数的属性的实体框架模型
假设我有以下代码优先EF模型:C# 具有指示一对多关系计数的属性的实体框架模型,c#,entity-framework,code-first,C#,Entity Framework,Code First,假设我有以下代码优先EF模型: public class Truck { public ICollection<Tire> Tires { get; set; } } 公共类卡车{public i收集轮胎{get;set;} 如何创建由数据库根据卡车是否有轮胎计算的属性Hastinres?我的目标是,在不装载轮胎对象的情况下,能够确定卡车是否至少有一个轮胎 我试图避免向数据库中添加我必须管理的列 编辑:我还应该指出,我需要取回一批卡车,可能是100辆或1000辆。你可以得到至少有
public class Truck { public ICollection<Tire> Tires { get; set; } }
公共类卡车{public i收集轮胎{get;set;}
如何创建由数据库根据卡车是否有轮胎计算的属性Hastinres?我的目标是,在不装载轮胎对象的情况下,能够确定卡车是否至少有一个轮胎
我试图避免向数据库中添加我必须管理的列
编辑:我还应该指出,我需要取回一批卡车,可能是100辆或1000辆。你可以得到至少有一个轮胎的整辆卡车,就像这样
var TrucksWithAtLeastOneTire = context.Trucks.Where(g=> g.Tires.Count() > 0);
或者只是检查特定卡车是否至少有一个轮胎:
private bool TruckHasTire(int truckId) {
return context.Trucks.Any(g=> g.Id == TruckId && g.Tires.Count() > 0);
}
你也可以试试这个 在这种情况下,您可以使用
Any
,而不是Count
这将只取一个轮胎的
卡车
或者您可以投影卡车和轮胎
var TruckAndTires = context.Trucks
.Where(g=> g.Tires.Any())
.Select(trk=>
{
truck = trk,
tires = trk.Tires,
}.ToList();
对不起,我忘了补充一点,我需要取回一批卡车,不管他们是否有轮胎,但作为这一部分,我需要知道每个实体是否有轮胎。在某些情况下,我可能需要100或1000秒。
var TrucksWithAtLeastOneTire = context.Trucks.Where(g=> g.Tires.Any());
var TruckAndTires = context.Trucks
.Where(g=> g.Tires.Any())
.Select(trk=>
{
truck = trk,
tires = trk.Tires,
}.ToList();