0

我正在尝试访问具有 State = added 的实体的 Navigational 属性,但 Navigational 属性为空。

    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 属性。

4

3 回答 3

0

您需要在您的客户类中有一个 BusinessType 属性。

在那里您可以设置业务类型,例如:

cust.BusinessType = (from x in myc.BusinessTypes where x.Id=1 Select x).First();
于 2012-12-11T09:51:34.870 回答
0

我认为你需要这样做:

myc.SaveChanges();

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

于 2012-12-11T09:53:43.537 回答
0

线后

myc.Customers.Add(cust);

你可以加

myc.ChangeTracker.DetectChanges();

这将触发一个称为关系修复的过程,其中 EF 同步外键中涉及的所有属性。BusinessType如果对象尚未在上下文中,它将导致从数据库中获取对象。

于 2012-12-11T10:58:58.490 回答