使用实体框架,有一个我要获取的属性值(SubmittedDate),但是我查询要获取的对象的名称取决于另一个属性(TaxFormCode)。目前,我正在使用如下所示的SqlQuery从正确的表格中获取日期,该日期是从TaxFormCode中删除破折号得出的:
using (var ctx = new TaxDbContext())
{
var sqlParam = new SqlParameter
{
ParameterName = "@FilingDetailId",
Direction = ParameterDirection.Input,
SqlDbType = SqlDbType.Int
};
sqlParam.Value = taxForm.FilingDetailId;
var submittedDate = ctx.Database.SqlQuery<DateTime?>("select SubmittedDate from [tax].[" + taxForm.TaxFormCode.Replace("-", "") + "] where FilingDetailId = @FilingDetailId", sqlParam).FirstOrDefault();
}
是不是我可以坚持使用Entity来完成此任务?
例如,如果TaxFormCode为NGC-01,则表示表为NGC01。手动使用实体访问导航属性,您将执行以下操作:
FilingDetail.NGC01.SubmittedDate
FilingDetail.NGC02.SubmittedDate
FilingDetail.NGC03.SubmittedDate
等所以,我很希望能够做类似的事情:
FilingDetail.GetEntityByName(taxForm.TaxCode.Replace("-","")).SubmittedDate
我似乎找不到任何允许基于动态字符串的导航属性访问的东西。