首先在EF数据库中自定义属性

美好的一天!

我使用数据库第一个aproach从数据库创建了一个EF模型,并将自己的几个只读属性添加到EF生成的实体类中,这些实体类不在数据库中。 每次我更新我的模型从新表添加数据时,我都会松开创建的属性,所以我必须重新创建它们。

作为数据库中的一个例子,我有属性isFemale,但在我创建的class级中

public string Gender { get { if(isFemale) return "female"; else return "male"; } } 

我的问题是有没有办法从数据库更新模型,留下我生成的属性?

谢谢!

在另一个Partial Class而不是生成的类上添加属性。 例如,如果生成的类是Person类型,则在具有相同名称空间的同一项目中定义另一个Partial类:

 public partial class Person { public string Gender { get { if(isFemale) return "female"; else return "male"; } } } 

使用分部类将解决您的问题,但:

  • 必须在同一个程序集中定义partial类的所有部分
  • 部分零件的属性不会持久保存到数据库中
  • 部分部件中的属性不能用于linq-to-entities查询

阅读更多

你可以让你的类部分并将它分成两个文件,这就是我在DatabaseFirst中使用它的方式。

 public partial class Person { public string FirstName { get; set; } public string LastName { get; set; } } public partial class Person { public string FullName { get { return FirstName + " " + LastName; } } }