我只想问 Entity Framework 的一般问题。当我想从数据库更新我的模型或从数据库向模型添加新项目时,我将丢失所有自定义属性
在例子中
My Sql Table
Test
Id int
TestId int
EF creates model automatically
public class Test
{
public int Id {get;set;}
public int TestId {get;set;}
}
//I want to add custom property on class
public class Test
{
public int Id {get;set;}
public int TestId {get;set;}
public string TestName {get;set;} //I added custom property
}
但是当我更新模型时,我丢失了自定义属性,每次我都需要一次又一次地添加它
你有什么解决办法吗?
谢谢
最佳答案
您需要使用partial
关键字。 Partial Classes and Methods (C# Programming Guide)
EF 应该将 partial
关键字添加到它创建的类中(如果没有,那么您需要弄清楚如何获取用于添加关键字的过程 - 通常通过编辑 . tt文件)。然后您可以使用相同的类定义创建一个单独的 .cs 文件。在你的情况下:
public partial class Test
然后 C# 编译器会将这两个定义视为相同的定义并将它们“添加”在一起。如果您遵循一些简单的规则,这是可行的。
- 两个定义必须相同并包含部分关键字。
- 两者必须在同一个模块(.exe、.dll)中定义
- 两者必须在同一个命名空间中定义。
通过这种方式,您将拥有一个由 EF 维护的类定义和一个由您维护的类定义。 EF 不会覆盖您的自定义属性。
您的类(class)将只是:
public partial class Test
{
public string TestName {get; set;}
}
关于c# - 从数据库更新 Entity Framework 模型,无法识别自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50638881/