假设我有以下实体:
class MyEntity
{
public int Id {get; set;}
public int Data {get; set;}
}
其中Id
是主键,而Data
字段是从存储过程中检索的。存储过程基于MyEntity.Id
字段计算其结果,即它将MyEntity.Id
作为参数,如下所示:GetDataForMyEntity(@MyEntityId)
。我正在使用EF Code First方法。我应该如何设置我的EntityTypeConfiguration以便实现上述目标?
答案 0 :(得分:0)
如果我正确理解了你的问题,那么MyEntity
不是一个实体(它没有保存在数据库中),它代表的数据需要使用存储过程来计算。
您的代码应如下所示:
class MyEntity
{
public int Id {get; set;}
public int Data {
get {
using(var context = new DatabaseContext())
{
var idParam = new SqlParameter("@MyEntityId", Id);
return context.Database
.SqlQuery<int>("GetDataForMyEntity @MyEntityId", idParam).SingleOrDefault();
}
};
// Data should not have a setter!!!
}
}
答案 1 :(得分:0)