我是否需要为每张桌子创建一个DBSet?这样我可以坚持孩子实体吗?

时间:2013-11-27 04:35:45

标签: ef-code-first

我的EF5型号

public Layout()
{
   public int Id {get;set}
   public BindingList<Column> Columns {get;set}
}
public Column()
{
   public int Id {get;set}
   public string Name {get;set}

   [Required]
   [ForeignKey("LayoutId")
   public virtual Layout Layout {get;set}
   public int LayoutId {get;set}

}

在我的上下文中,我只需要指定

DBSet<Layout> Layouts {get;set}

我不需要为数据库指定DBSet Columns,以便用两个表创建我想要的方式。

此外,我很高兴我的代码只能通过布局对象访问列 但是我无法弄清楚如何正确地保持布局对象的列。

这个 question here描述了如何用子节点保存父对象,但它需要我在我的上下文中创建一个DBSet Columns属性。我真的必须这样做吗?

1 个答案:

答案 0 :(得分:0)

如果不使用

,我似乎可以在上下文中没有DBSet
Context.Columns.Remove(col)

我用

Layout.Columns.Remove(col)
Context.Entry(col).State = EntityState.Deleted;