向模型 (edmx) 添加新表,而不更新数据库第一个实体框架 MVC 应用程序中的其他模型

本文关键字:模型 框架 实体 第一个 MVC 其他 数据库 应用程序 edmx 添加 新表 | 更新日期: 2023-09-27 18:33:17

我有一个使用 Entity Framework 6 Database First 方法的 MVC 5 应用程序。

到目前为止,它运行良好,但我遇到了不受欢迎的行为。

如果我选择">

从数据库更新模型",选择"添加"选项卡,然后选择我要添加的表或视图并单击完成,它会添加我指定的表和/或视图没有问题。

但是,不需要的行为是,即使我没有选择"刷新选项卡",似乎每个模型都会自动刷新。

这意味着我的模型上的所有自定义属性都将被删除。

有没有办法指定只添加指定的表或视图而不刷新所有模型,或者如果刷新所有模型,保留我指定的属性?

Visual Studio

資訊: Microsoft Visual Studio Professional 2013版本 12.0.40629.00 更新 5Microsoft .NET 框架版本 4.5.51650

安装版本:专业版

这是错误还是预期用途?

谢谢

尼尔

向模型 (edmx) 添加新表,而不更新数据库第一个实体框架 MVC 应用程序中的其他模型

为了修改自动生成的类,建议使用分部类,这样当类再次刷新/生成时,您的更改就不会丢失。

类和

分部类扩展其属性和方法的简单示例

// Assume this is autogenerated by EntityFramework
public class Book {
    public int Id {get; set;}
    public string Title {get; set;}
}
// In a different file.cs
public partial class Book {
    [Required]
    public string Author {get; set;}
    public override ToString(){
        // Some code goes here
    }
}

在该示例中,如果 EntityFramework 生成新的 Book 模型,则通过分部类对该模型所做的更改根本不会丢失。

有关分部类的详细信息,请查看

本文,有关使用分部类的优点的详细信息,请查看此问题。

编辑:如果您需要将属性添加到自动生成类的现有属性中,此答案也可能对您有所帮助。

您确实需要使用分部类,以便您可以随心所欲地刷新 edmx。

在这里查看有关该主题的精彩教程。