可以在模型上具有属性,而数据库上没有相应的字段

时间:2015-02-17 04:48:09

标签: c# entity-framework edmx

我使用Entity框架,使用Database First。

我已从现有数据库创建了带有向导的模型。

现在我有这种情况:

假设我在数据库中有一个表:

  

MyTable1(ID,Name,Value1)

当我使用向导创建模型时,在Model.edmx上创建一个具有相同结构的实体。但由于在程序执行期间的几个原因,在模型上我只想要一个额外的属性,在数据库上没有相应的字段。

所以在模型上我想要这样的东西:

  

MyTable1(ID,Name,Value1, ExtraValue

我只需要在运行时的某些操作中使用此额外属性。

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

使用partial创建NotMappedAttribute类并注释属性。

当edmx从您的数据库生成代码时,它会为每个表创建partial个类。您可以在那里为您的表添加partial课程,然后使用NotMapped属性添加您的媒体资源。

例如,您正在使用Student表,并且您想要添加不在数据库中的Age属性,那么您应该执行以下操作。

public partial class Student
{
    [NotMapped]
    public int Age{get; set;}
}

有关NotMappedAttribute的详细信息,请访问MSDN文档here

<强>更新

有关部分课程的更多信息,请访问here

您还要访问此链接Extending Entity Framework Generated TypesEntity Framework using Partial classes to add business logic and validation to generated entities