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

本文关键字:自定义属性 数据库 EF | 更新日期: 2023-09-27 18:32:55

美好的一天!

我已经使用数据库首先从数据库创建了一个 EF 模型,并向 EF 生成的实体类添加了几个只读属性,这些属性不在数据库中。每次更新模型时,都会从新表添加数据我丢失了创建的属性,所以我必须重新创建它们。

作为数据库中的一个例子,我有属性是女性,但在我的类中我创建了

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

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

谢谢!

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

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

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

使用分部类可以解决您的问题,但是:

  • 分部类的所有零件必须在同一部件中定义
  • 部分部件的属性不会持久保存到数据库中
  • 部分零件中的属性不能在 linq 到实体中使用查询

阅读更多

你可以把你的类分成部分,把它分成两个文件,这是我在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;
        }
    }
}