动态访问实体子对象

时间:2018-07-09 16:29:33

标签: model-view-controller entity

使用实体框架,有一个我要获取的属性值(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

我似乎找不到任何允许基于动态字符串的导航属性访问的东西。

0 个答案:

没有答案