2016-05-27 12 views
1

に1のカウントを示すのは、私は次のコード最初のEFモデルを持っているとしましょう:Entity Frameworkのモデルの多くの関係

私はプロパティを作成し、HasTiresが、それはベースのデータベースによって計算方法
public class Truck { public ICollection<Tire> Tires { get; set; } } 

トラックにタイヤがあるかどうか?ここでの目標は、トラックに少なくとも1つのタイヤが搭載されているかどうかを判断できるようにすることです。

私は管理しなければならないデータベースに列を追加しないようにしようとしています。

EDIT:私はトラックのコレクションを取得する必要があることを指摘しておきます。潜在的には100sまたは1000sです。

答えて

1

あなたはそう

var TrucksWithAtLeastOneTire = context.Trucks.Where(g=> g.Tires.Count() > 0); 

または特定のトラックが少なくとも一つのタイヤ持っている場合だけでチェックするように、少なくとも1つのタイヤと全体のトラックを取得することができます:あなたはまた、

private bool TruckHasTire(int truckId) { 
    return context.Trucks.Any(g=> g.Id == TruckId && g.Tires.Count() > 0); 
} 
+0

を投射することができ申し訳ありませんが、私は戻っかかわらず、彼らはどんなタイヤを持っているか否かのトラックのコレクションを取得する必要があることを追加するのを忘れたが、の一部として、各エンティティにタイヤがあるかどうかを知る必要があります。場合によっては、100秒か1000秒が必要な場合があります。 – Nick

1
context.Trucks 
    .Select(t => new 
    { 
     Truck = t, 
     HasTires = t.Tires.Any() 
    }); 
0

をでき試してみてください

CountこのシナリオでAnyを使用することができます
これは1つのタイヤで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(); 
関連する問題