Relationships in Entity Framework.
在Entity Framework中,可以通过属性的方式来访问有外键关系的表。当通过这种方式来访问的时候,存在一个何时加载关系表的问题。一共有lazy, delayed, eager 这三种方式。默认的方式是lazy。
 public EFDemoEntities() : base("name=EFDemoEntities", "EFDemoEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
Lazy方式载入数据:当要访问外键表的数据的时候才会载入数据。
当然可以手动改变这种方式,现在假如有两个表,Customer表,Orders表,其中Customer表中通过OrderID加外键建立和Orders表的联系。
Eager方式载入数据:主键表和外键表的数据同时载入
 foreach (Customer customer in data.Customers.Include("Orders"))
            {
                Console.WriteLine("{0}", customer.CompanyName);
                foreach (Order order in customer.Orders)
                {
                    Console.WriteLine("\t{0} {1:d}", order.OrderID, order.OrderDate);
                }
            }
Delayed方式载入数据:这种方式实际上是手动载入数据,但前提是要设置LazyLoadingEnabled =False
if (!customer.Orders.IsLoaded)
     customer.Orders.Load();
                    
                
                
            
        
浙公网安备 33010602011771号