首页 > 解决方案 > 是否可以从 EF6 中的 DbDataReader 获取模型类型?

问题描述

我的项目中有一个使用 EF6 的自定义 dbDataReader。我想要的只是将某些DateTime 字段的 DateTimeKind 从 Local 更改为 UTC。出于这些目的,我覆盖了默认的 GetDateTime(int ordinal) 方法。这是我的代码:

public override DateTime GetDateTime(int ordinal)
{
    return DateTime.SpecifyKind(base.GetDateTime(ordinal), DateTimeKind.Utc);           
}

但是此代码会将所有dateTime 属性的 DateTimeKind 更改为 UTC。但我只需要其中一些。为了确定哪些 dateTime 字段应该获取 DateTimeKind.Utc,我决定为它们添加一个自定义属性,称为 DateTimeKindAttribute。这就是我使用它的方式:

[DateTimeKind(DateTimeKind.Utc)]
public DateTime SubmitDate { get; set; }

是否可以在 GetDateTime(int ordinal) 方法中获取相应的模型类型和属性名称。此信息将用于检查指定属性是否具有 DateTimeKindAttribute?

标签: c#asp.netentity-frameworkentity-framework-6

解决方案


推荐阅读