我使用 EF Code-first 开发我的 ASP.NET MVC4 应用程序,我也使用迁移功能。我有特定的实体,出于某些原因我想设置明确的 id 值。我怎样才能做到这一点?我试图用这样的属性标记 id 属性:
public class NewsSource
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Title { get; set; }
public string WebSiteUrl { get; set; }
}
然后我添加相应的迁移,删除数据库并尝试使用 Seed() 方法更新数据库,如下所示:
context.NewsSources.AddOrUpdate(x => x.Title,
new NewsSource {Id = 654, Title = "ABC", WebSiteUrl = @"http://www.abc.com/"},
new NewsSource {Id = 22, Title = "XYZ", WebSiteUrl = @"http://XYZ.ru/"});
我得到了这个错误:“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'NewsSources' 中插入标识列的显式值”。如何使用 EF 和迁移将 identity_insert 设置为 ON。正如我从许多主题中了解到的那样,这是不可能的,我必须使用直接的 SQL 命令。我错了吗?