在数据库中我有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字段创建一个完整的对象???
答案 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);
}