1

首先,Asp.Net MVC 和 ADO.NET 实体数据模型的新手。

在练习示例时,我创建了一个表,但忘记将PK的“身份规范”设置为 true 。

使用实体数据模型为 MVC 应用程序创建了一个模型并且工作正常。

稍后,我已将数据库中该表的“身份规范”设置为 true。

当我尝试插入记录时,会引发异常并且不会插入记录。

{“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'Contacts' 中插入标识列的显式值。”}

这是模型中 digner 创建的类,它应该根据 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

谢谢

4

1 回答 1

1

正确配置您的数据库架构,然后右键单击您的模型并选择“从数据库更新模型”。这将更正 EDMX 中的 SSDL,它会告诉 EF 这id是存储生成的。

但是,它不会从方法中删除id参数。CreateContactEF 的代码生成器将所有不可为空的属性放入此方法的签名中。但是一旦你更新了 SSDL,你应该不会再在保存时出现异常;如果你想使用这个方法(你不必),你可以传递一个 0。

于 2010-02-04T13:23:35.063 回答