2012-02-09 60 views
1

我使用Asp.net MVC3和实体框架4设置了博客。博客帖子的大多数属性已存在于数据库中,因此可以轻松链接到博客在创作过程中发布。在创建另一实体的同时添加未知实体

我添加的最后一个元素是来源,这些来源有一个直接链接到我的BlogPost,并且必须在创建BlogPost期间添加。我的想法是使用博客帖子实体的实体属性源,如:

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

不幸的是我不能创建并添加源这样,我得到了错误:“无法插入显式值对于IDENTITY_INSERT设置为OFF时表'Source'中的标识列。“

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

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

+0

您使用什么EF?先编码,先编码? Source对象是否具有Id属性?它是如何映射的? – 2012-02-09 19:54:42

+0

我使用EF版本4,它是从我的数据库模型生成的。 – DerDee 2012-02-10 08:23:35

+0

来源通过Source表中的“BlogPostID”字段映射到blogpost。来源 ![图片](http://img593.imageshack.us/img593/1586/82411220.png)。 – DerDee 2012-02-10 08:34:24

回答

0

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

相关问题