使用外键添加Entity对象

时间:2011-01-10 21:26:50

标签: c# entity-framework

在数据库中我有2个表:
文章:ID |标题| SectionID
部分:ID | SectionName
(所有ID都设置为Identity Increment)

我想添加具有特定SectionID的新文章(在数据库中退出)。

我厌倦了这个:

Article art = new Article
{
    Title = "title"
};

art.Section.SectionID = 0;


if (art.EntityState == EntityState.Detached)
{
   Articlerctx.AddToArticles(art);
}

我在art.Section.SectionID = 0时遇到错误;

  

对象引用未设置为   对象的实例

我是否需要为一个int字段创建一个完整的对象???

3 个答案:

答案 0 :(得分:0)

你当然可以从数据库中获取对象(我没有看到“存在于数据库中”,抱歉)。

从您的上下文中抓取Section对象并分配它。

art.Section = context.Section.FirstOrDefault(s => s.ID == 0);

答案 1 :(得分:0)

art.SectionReference.EntityKey = new EntityKey("EntityModelName.EntitySetName", "IdFieldName", 0);

答案 2 :(得分:0)

在EF 4中,您可以选中更新模型向导上的框以在模型中包含外键字段。如果这样做,您可以将代码更改为:

Article art = new Article
{
    Title = "title"
};

art.SectionID = 0;

if (art.EntityState == EntityState.Detached)
{
   Articlerctx.AddToArticles(art);
}