EF CTP 5创建并保持对象图故障

时间:2010-12-20 08:31:47

标签: entity-framework ef4-code-only

代码:

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; }

}

2 个答案:

答案 0 :(得分:0)

我想我可能遇到了同样的问题。 I posted on MSDN,但没有得到回复。

这可能是EF中的一个错误,你必须忍受并在其中工作。

答案 1 :(得分:0)

首先使用代码,您必须在构造函数中启动集合。

 class printer
 {
   public virtual ICollection<replica> replicas {get;set;}
    public printer{
      replicas = new HashSet<replica>();
    }
 }

它会再次神奇地起作用。