DBContext,访问新添加实体的导航属性

时间:2012-12-11 09:46:38

标签: c# entity-framework

我正在尝试访问State = Added的实体的Navigational属性,但Navigational属性为null。

    using (var myc = new DBTestEntities())
    {
        var cust = new Customer();
        cust.CustomerName = "New Customer";
        cust.BusinessTypeID = 1;  // This is a valid BusinessTypeID present in BusinessType table

        myc.Customers.Add(cust);
        // at this point cust.BusinessType is null
        Console.WriteLine(cust.BusinessType.BusinessTypeName);
    }

在这种情况下,任何人都可以指导我如何访问Navigational属性。

3 个答案:

答案 0 :(得分:0)

您需要在客户类中拥有BusinessType属性。

在那里你可以设置Businesstype类似的东西:

cust.BusinessType = (from x in myc.BusinessTypes where x.Id=1 Select x).First();

答案 1 :(得分:0)

我认为你需要这样做:

myc.SaveChanges();

实际将实体提交到数据库。

答案 2 :(得分:0)

行后

myc.Customers.Add(cust);

你可以添加

myc.ChangeTracker.DetectChanges();

这将触发一个名为relationship fixup的进程,其中EF同步外键中涉及的所有属性。如果BusinessType对象不在上下文中,它将导致从数据库中取出{{1}}对象。