代码:
Something smt = new Something(){
Prop = 123,
Prop2 = "asdad"
}
foreach(var related in relatedsomething)
{
smt.Related.Add(new Related(){
relatedprop = 123,
};
}
运行时给出了关于null引用的错误。 相关的是虚拟Icollection。 实体中没有外键字段。
相反,如果我这样做
foreach(var related in relatedsomething)
{
db.Related.Add(new Related(){
relatedprop = 123,
Something = smt
};
}
有效。
虽然,我希望它像第一个片段一样工作
难道我做错了什么? '在EF4发货时,它可以双向工作。
模型类(相关部分):
public class Printer
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Replica> Replicas { get; set; }
}
public class Replica
{
public int Id { get; set; }
public virtual Printer Printer { get; set; }
}
public class PrintersContext: DbContext
{
public DbSet<Printer> Printers { get; set; }
public DbSet<Replica> Replicas { get; set; }
}
答案 0 :(得分:0)
我想我可能遇到了同样的问题。 I posted on MSDN,但没有得到回复。
这可能是EF中的一个错误,你必须忍受并在其中工作。
答案 1 :(得分:0)
首先使用代码,您必须在构造函数中启动集合。
class printer
{
public virtual ICollection<replica> replicas {get;set;}
public printer{
replicas = new HashSet<replica>();
}
}
它会再次神奇地起作用。