与EF相关的实体未加载

时间:2015-09-02 23:29:01

标签: c# entity-framework

我有一个相关的实体用于存储我的所有静态数据。问题是,当我创建一个新实体时,相关实体总是为空。 从数据库中提取数据时没有问题 - 我可以很好地访问相关实体。

使用EF 6.0,首先建模,如果重要的话。

我已尝试使用.Include,并在保存后重新获取,但它无效。我确信这很简单,我很想念......有什么帮助吗? TIA

...
using (var db = new dbContext1())
{            
    Customer c = new Customer();
    c.id = this.id;
    db.Customer.Add(c);
    db.SaveChanges();

    for (int i = 1; i <= c.CustomerProperties.initialAllotment; i++)
    {
        //do stuff
    }
}

在Customer类中:

public int id { get; set; }    
public virtual CustomerProperties CustomerProperties { get; set; }

2 个答案:

答案 0 :(得分:0)

如果您只是添加CustomerProperties并保存更改,则不会设置db,然后它不会被实体框架神奇地设置。您必须从Customer加载这些静态属性,然后将其添加到%%a ,然后保存。

答案 1 :(得分:0)

看起来您还没有实例化CustomerProperties类的实例。我会想象在db.SaveChanges();解决你的问题之前使用它。

 c.CustomerProperties = new CustomerProperties();

此外,使用CustomerProperties作为类的名称,以及属性的名称可能会导致一些问题。

我建议改用:

 public int id { get; set; }    
 public virtual CustomerProperties customerProperties { get; set; }

请注意该属性名称从Pascal CaseCamel Case的更改。

请参阅:Property Naming Guidelines