これはうまくいきますが、最初のものには本当に興味がありません。EFで見つけて含める6
Customer foundCustomer = context.Set<Customer>().Include(e => e.Orders.Select (d => d.OrderLines)).FirstOrDefault();
これはうまくいきます。
string custKey = "VINET";
Customer foundCustomer = context.Set<Customer>().Include(e => e.Orders.Select(d => d.OrderLines)).Where(c => c.CustomerID.Equals(custKey, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
これは機能し、私が望むようにデータベースを読み取りますが、必要なインクルードはありません。
Customer foundCustomer = context.Set<Customer>().Find(custKey);
これは動作しません....しかし、私は
Customer foundCustomer = context.Set<Customer>().Include(e => e.Orders.Select(d => d.OrderLines)).Find(custKey);
後、実際だと、Find()
でInclude()
を結合する方法はありますか?
ここにコンテキストがあります。典型的なNorthwind顧客/注文/注文詳細シナリオ。
public partial class WindyContext : DbContext
{
static WindyContext()
{
//Database.SetInitializer<WindyContext>(null);
}
public WindyContext()
: base("Name=NorthwindContext")
{
}
public DbSet<Customer> Customers { get; set; }
public DbSet<OrderLine> DbSetOrderLines { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<Product> Products { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new CustomerMap());
modelBuilder.Configurations.Add(new OrderLineMap());
modelBuilder.Configurations.Add(new OrderMap());
modelBuilder.Configurations.Add(new ProductMap());
}
}
データベース照合が常に比較をオーバーライドするので、 '='を使用することもできます。 –