對於我第一次使用EF代碼的程序。在過去,我使用LINK to SQL和EF DbFirst。當重新錄製主要記錄時,我無法使用導航屬性加載子記錄。我得到一個空的子記錄,其中所有記錄字段都是0或null。實體框架代碼第一個導航屬性返回空字段
當我想申請急切的加載。 .include(x => x .......)沒有顯示我的導航。
我已經設置了以下類:
public Record()
{
Shipping = new ShippingData();
Delivery = new DeliveryData();
Items = new List<Item>();
ImportDate = DateTime.Now;
}
[Key]
public int RecordId { get; set; }
public int ShippingId { get; set; }
public int DeliveryId { get; set; }
public DateTime ImportDate { get; set; }
public virtual ShippingData Shipping { get; set; }
public virtual DeliveryData Delivery { get; set; }
public virtual List<Item> Items { get; set; }
public virtual Collecting CollectingOrder { get; set; }
有以下方面:
public class TweemansContext : DbContext
{
public TweemansContext()
: base("xxxx")
{
}
public DbSet<Add.Record> Records { get; set; }
public DbSet<Add.ShippingData> Shipping { get; set; }
public DbSet<Add.DeliveryData> Delivery { get; set; }
public DbSet<Add.Item> ProductItems { get; set; }
public DbSet<Add.Kolli> Kolli { get; set; }
public DbSet<Add.Collecting> CollectingOrders { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Record>().HasRequired(s => s.Shipping)
.WithMany()
.HasForeignKey(s => s.ShippingId);
modelBuilder.Entity<Record>().HasRequired(d => d.Delivery)
.WithMany()
.HasForeignKey(d => d.DeliveryId);
modelBuilder.Entity<Record>().HasOptional(c => c.CollectingOrder)
.WithOptionalDependent(a => a.Record).Map(p => p.MapKey("CollectionID"));
}
}
交付類是一個公共類如逢如下:
public class DeliveryData
{
[Key]
public int DeliveryId { get; set; }
public virtual Record Record { get; set; }
....lots of public properties
現在當我嘗試使用延遲加載時,使用下面的鱈魚,遞送類的所有屬性都爲null E:
using (TweemansContext context = new TweemansContext())
{
var imported = (from record in context.Records
where record.ImportDate.Year == date.Year && record.ImportDate.Month == date.Month && record.ImportDate.Day == date.Day
select record).ToList();
foreach (var Record in imported)
{
string email;
string telnr;
CustomerService service = new CustomerService(connectionString);
**string servicenr = Record.Delivery.AccountNumber.Substring(2, 8);**
service.GetUserData(servicenr, out email, out telnr);
Record.Delivery.Email = email;
Record.Delivery.TelephoneNbr = telnr;
}
context.SaveChanges();
}
上與**我調試告訴我,交貨存在,但它的所有屬性都爲空行。
如果想申請一個包括如下在.include沒有顯示我的導航:
var imported = (from record in context.Records.Include(x=>x.)
where
record.ImportDate.Year == date.Year
&& record.ImportDate.Month == date.Month
&& record.ImportDate.Day == date.Day
select record).ToList();
什麼我做錯了,或者哪一部分已經我misuderstood?
在你的Context構造函數中添加這些行:'Configuration.LazyLoadingEnabled = true; Configuration.ProxyCreationEnabled = true;' – 2013-03-24 12:02:43
嘗試過但沒有任何成功解決我的問題。 – 2013-03-24 12:11:49