在创建另一个实体时添加不存在的实体

时间:2012-02-09 15:44:43

标签: asp.net entity-framework entity-framework-4

我正在使用Asp.net MVC3和Entity框架4建立一个博客。博客文章的大多数属性已经存在于数据库中,因此可以在创建过程中轻松链接到博客文章。

我添加的最后一个元素是来源,这些来源与我的BlogPost有直接链接,必须在创建BlogPost时添加。我的想法是使用BlogPost实体的实体属性Sources,如:

blogPost.Sources.Add(new Source() { Name = source.Value, Url = source.Key.ToString(), Type = "source" });

不幸的是我不允许以这种方式创建和添加Source,我收到错误:“当IDENTITY_INSERT设置为OFF时,无法在表'Source'中为identity列插入显式值。”

我想这是ID列的原因,它已经打开了身份增量标识,但我自己没有设置任何ID。我试图使id = null,但由于它不是null,所以也不允许。 我相信关闭这个功能让我用我自己的ID添加记录,但这不是我想要的。数据库应该创建ID。

有没有办法在创建过程中添加这些属性?

1 个答案:

答案 0 :(得分:0)

我通过从数据库中再次添加Source实体解决了这个问题,显然实体框架模型是在字段设置为Identity Increase之前生成的,因此希望插入它自己的ID。