我使用Entity框架,使用Database First。
我已从现有数据库创建了带有向导的模型。
现在我有这种情况:
假设我在数据库中有一个表:
MyTable1(ID,Name,Value1)
当我使用向导创建模型时,在Model.edmx
上创建一个具有相同结构的实体。但由于在程序执行期间的几个原因,在模型上我只想要一个额外的属性,在数据库上没有相应的字段。
所以在模型上我想要这样的东西:
MyTable1(ID,Name,Value1, ExtraValue )
我只需要在运行时的某些操作中使用此额外属性。
可以这样做吗?
答案 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 Types和Entity Framework using Partial classes to add business logic and validation to generated entities