更新MVC应用程序模型以及数据源

时间:2010-02-04 02:28:23

标签: c# asp.net-mvc entity-framework ado.net-entity-data-model

首先,是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

由于

1 个答案:

答案 0 :(得分:1)

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

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