假设我的第一个EF模型有以下代码:
public class Truck { public ICollection<Tire> Tires { get; set; } }
我如何根据卡车是否有轮胎来创建由数据库计算的属性HasTires?我的目标是,我希望能够确定卡车是否至少有一个轮胎而不装载轮胎物体。
我正试图避免在数据库中添加一个我必须管理的列。
编辑:我还应该指出,我需要回收卡车,可能是100或1000。
答案 0 :(得分:1)
你可以买到至少有1个轮胎的整辆卡车
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);
}
答案 1 :(得分:1)
context.Trucks
.Select( t => new
{
Truck = t,
HasTires = t.Tires.Any()
} );
答案 2 :(得分:0)
你也可以试试这个
在此方案中,您可以使用
Count
而不是Any
这只能用一个轮胎取Trucks
。
var TrucksWithAtLeastOneTire = context.Trucks.Where(g=> g.Tires.Any());
或者你可以投射Trucks and Tires
var TruckAndTires = context.Trucks
.Where(g=> g.Tires.Any())
.Select(trk=>
{
truck = trk,
tires = trk.Tires,
}.ToList();