Asp.net 在创建其他实体时添加不存在的实体

Asp.net 在创建其他实体时添加不存在的实体,asp.net,entity-framework,entity-framework-4,Asp.net,Entity Framework,Entity Framework 4,我正在使用Asp.NETMVC3和EntityFramework4建立一个博客。博客文章的大多数属性已经存在于数据库中,因此可以在创建期间轻松链接到博客文章 我添加的最后一个元素是源代码,这些源代码直接链接到我的BlogPost,必须在创建BlogPost时添加。我的想法是使用BlogPost实体的实体属性源,如: blogPost.Sources.Add(new Source() { Name = source.Value, Url = source.Key.ToString(), Type

我正在使用Asp.NETMVC3和EntityFramework4建立一个博客。博客文章的大多数属性已经存在于数据库中,因此可以在创建期间轻松链接到博客文章

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

blogPost.Sources.Add(new Source() { Name = source.Value, Url = source.Key.ToString(), Type = "source" });
不幸的是,我不允许以这种方式创建和添加源,我得到了错误:“当identity\u insert设置为OFF时,无法在表'Source'中为identity列插入显式值。”

我想这就是ID列的原因,它有一个启用了Identity increment的标识,但我自己并没有设置任何ID。我试图使id=null,但由于它不是null-able,因此也不允许。 我相信关闭这个功能让我可以添加带有我自己ID的记录,但这不是我想要的。数据库应该创建ID


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

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

你用的是什么?代码优先,型号优先?源对象是否具有Id属性?它是如何映射的?我使用的是EF版本4,它是从我的数据库模型生成的。源通过源表中的“BlogPostID”字段映射到blogpost。来源!。