首先,是Asp.Net MVC和ADO.NET实体数据模型的新手。
在练习示例时,我创建了一个表,但忘记将“身份规范”设置为 PK 为真。
使用实体数据模型为MVC应用程序创建了一个模型并且工作正常。
后来我已经将数据库中该表的“身份规范”设置为true。
当我尝试插入记录时,会引发异常并且不会插入记录。
{“无法插入显式值 表'联系人'中的标识列 当IDENTITY_INSERT设置为OFF时。“}
以下是模型中挖掘者创建的类,它应该根据DB
中的模式更改进行更改public static Contact CreateContact(int id, string firstName, string lastName, string phone, string email)
{
Contact contact = new Contact();
contact.Id = id;
//
return contact;
}
上述方法签名中不需要“Id”变量,但它仍然自动生成。
我们如何让我们的模型自己刷新或手动, 如果数据库架构已更新。
注意:使用C#,ASP.NET MVC
由于
答案 0 :(得分:1)
正确配置数据库模式,然后右键单击模型并选择“从数据库更新模型”。这将更正EDMX中的SSDL,它告诉EF id
存储已生成。
但是,它不会从id
方法中删除CreateContact
参数。 EF的代码生成器将签名中的所有非可空属性放入此方法中。但是一旦你更新了SSDL,你就不应该在保存时得到异常;如果你想使用这个方法(你没有),你可以传递一个0。