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

时间:2013-09-26 07:02:37

标签: c# entity-framework ef-database-first

美好的一天!

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

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

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

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

read more

答案 2 :(得分:2)

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

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;
        }
    }
}