你好,我的实体是ParameterDetail,如下所示。
public class ParameterDetail
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
[NotMapped]
public string Description { get; set; }
//..other columns removed for brevity
public int LookupValueId { get; set; }
}
我调用我的存储过程并加载结果如下... ...
List<ParameterDetail> paramDetails = this.ParameterDetails.FromSqlRaw("EXEC dbo.GE_GetStartParameter @GuidelineName={0}", guidelineName).ToList();
现在这一切都很好,但现在我必须调用一个稍微不同的过程,它没有LookupValueId......。
List<ParameterDetail> paramDetails =this.ParameterDetails.FromSqlRaw("EXEC dbo.GetParameterDetails @ParameterId={0}", nextParam).ToList();
我不想为这一列添加另一个实体模型......我可以在运行时使用Mapped属性(Data Annotation)吗?还是有其他的解决办法?
我可以在运行时使用Mapped属性(Data Annotation)吗?或者有其他的解决方案吗?
如果你想让EF执行映射,至少不是一个好的映射。 你不能在运行时改变属性,但如果你使用Fluent配置,你可以有两个。不同 DbContext子类型,对同一个实体类进行不同的配置。 但这不是一个很优雅的解决方案。
你总是可以用ADO.NET执行存储过程,然后按照你的意愿映射数据。