我有一个使用 Entity Framework 6 Database First 方法的 MVC 5 应用程序。
到目前为止,它运行良好,但我遇到了不受欢迎的行为。
如果我选择">从数据库更新模型",选择"添加"选项卡,然后选择我要添加的表或视图并单击完成,它会添加我指定的表和/或视图没有问题。
但是,不需要的行为是,即使我没有选择"刷新选项卡",似乎每个模型都会自动刷新。
这意味着我的模型上的所有自定义属性都将被删除。
有没有办法指定只添加指定的表或视图而不刷新所有模型,或者如果刷新所有模型,保留我指定的属性?
Visual Studio資訊: Microsoft Visual Studio Professional 2013版本 12.0.40629.00 更新 5Microsoft .NET 框架版本 4.5.51650
安装版本:专业版
这是错误还是预期用途?
谢谢
尼尔
为了修改自动生成的类,建议使用分部类,这样当类再次刷新/生成时,您的更改就不会丢失。
类和分部类扩展其属性和方法的简单示例
// 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。
在这里查看有关该主题的精彩教程。