FluentNHibernate Automap:“属性映射列数错误”

时间:2016-07-20 14:17:21

标签: c# nhibernate fluent-nhibernate

我们有一个使用FluentNHibernate的项目。目前,我们为我们的实体维护了大量Fluent映射。我试图将我们转移到Fluent的自动化功能,以便我们可以删除维护层。

我遇到了FluentNHibernate的automapper问题。我已经配置了automapper并创建了一些约定来在地图创建时转换属性名称,但是当我尝试执行查询时,我收到以下错误:

"message": "An error has occurred.",
"exceptionMessage": "property mapping has wrong number of columns: MyNamespace.Common.Attachment.CreatedDate type: DateTime",
"exceptionType": "NHibernate.MappingException",

我试图在没有结果的情况下提取有关此错误的更多信息。基于我发现的一些信息,我的预感是NHibernate没有正确地将System.Datetime映射到Oracle日期类型。 (有些读数表明C#数据类型和DB列类型之间的精度问题可能会导致这些类型的问题。)但是,在使用当前的Fluent映射时,没有问题(我们没有针对日期时间处理的特定配置)。

我想知道是否有人遇到与FluentNHibernate中的Automap功能类似的问题。我正在使用的约定代码如下。

AuditEntityConvention.cs

public class AuditEntityConvention : IPropertyConvention
{
    public void Apply(IPropertyInstance instance)
    {
        if (instance.EntityType.IsSubclassOf(typeof(AuditEntity)))
        {
            switch (instance.Name) {
                case "CreatedDate":
                    instance.Column("CREATED_DT");
                    break;
                case "UpdatedDate":
                    instance.Column("UPDATED_DT");
                    break;
            }
        }
    }
}

或者,有没有办法调试automapper并查看它生成的映射?如果我能做到这一点,也许我可以继续前进。

0 个答案:

没有答案