未通过SqlQuery()设置带有[NotMapped]的EF 5代码优先模型
本文关键字:EF 代码 模型 NotMapped SqlQuery 设置 | 更新日期: 2023-09-27 17:50:22
可能重复:
使用linq 在模型类Entity Framwork Code First中的NotMapped属性中获取值
我在我的项目中使用Entity Framework 5
的Code First
,我的模型看起来或多或少是这样的:
public class Category
{
public int CategoryId { get; set; }
public string Name { get; set; }
public virtual Category Parent { get; set; }
[NotMapped]
public int Level { get; set; }
}
生成的table
包含除级别column
(如预期(之外的所有列
现在,我有一个stored procedure
,它计算Category节点相对于其父节点的级别。
如果我在SQL Server Mgmt Studio中执行stored procedure
,它将返回我的模型中指定的列,包括[NotMapped]级别column
。
问题是:如果我这样调用stored procedure
,那么级别column
就没有被填充:Context.Database.SqlQuery<TModel>(storedProcedure, parameterArray);
,其中TModel
是Category
。
有什么方法可以"重复使用"model
类别吗?
您明确表示属性"Level"不是模型的一部分,因此它当然不会由存储过程填充。你为什么会期待其他的?
唯一的方法是手工解析sp的结果,并自己创建模型类的实例。