我有一个相关的实体用于存储我的所有静态数据。问题是,当我创建一个新实体时,相关实体总是为空。 从数据库中提取数据时没有问题 - 我可以很好地访问相关实体。
使用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; }
答案 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 Case到Camel Case的更改。