私はエンティティフレームワークを勉強しています。Find()メソッド私は理解できません。
"Entity Frameworkのプログラミング:コードファースト" ジュリアラーマンの本から採取したサンプルEntity FrameworkのFindメソッドはどのように機能しますか?
public class Destination
{
public int DestinationId { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Description { get; set; }
public byte?[] Photo { get; set; }
public ICollection<Lodging> Lodgings { get; set; }
public Destination()
{
Lodgings = new List<Lodging>();
}
}
public class Lodging
{
public int LodgingId { get; set; }
public string Name { get; set; }
public string Owner { get; set; }
public bool IsResort { get; set; }
public Destination Destination { get; set; }
}
そして、私は次の方法でデータを操作する:
var destination = organizationDbContext.Destinations // case # 1
.Include("Lodgings")
.First(p=>p.DestinationId==1);
var destination = organizationDbContext.Destinations.Find(1); // case # 2
- なぜ私ができます」 Include()呼び出し後の最初のケースでFind()メソッドを呼び出しますが、Where()およびFirst()を使用できますか?
- Find()で2番目のケースを使用する場合、ここではIncluding()メソッドをLodgingsに呼び出すことはできません。関連するロードをどのようにロードする必要がありますか?
- 行うための正しい方法は何ですか:1つのオブジェクトを見つけると(1対多)、関連するすべての内部オブジェクトをロードするには
私の質問
は別の方法で表現されるだろうか?
- すべてのオブジェクト(セットA)と内部の関連オブジェクト(A.Iを設定)をロードし、(A)からIDで1つを探します。
をDbSet 'が行います。そういうわけで、#2の場合 –
Fabjan