【问题标题】:Cast type in mapping, FluentNhibernate映射中的投射类型,FluentNhibernate
【发布时间】:2012-06-09 13:08:54
【问题描述】:

我有这张表,其中几列设置为我不想要的类型。例如.. 一个名为 createDate 的列设置为 nvarchar(50).. 默认情况下将被视为字符串.. 但我不希望它被映射为字符串,我希望它被映射为 DateTime 对象。 那么如何在映射过程中将字符串转换为 DateTime 对象..

提前致谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 fluent-nhibernate mapping


    【解决方案1】:

    基本上,您的映射类不知道数据库类型。您可以使用 DateTime 属性设计您的模型,并将它们映射到类型错误的列,希望在给定当前格式的情况下转换能够正常工作。如果我尝试这个没有成功,我还应该查看是否可以传入一个 FormatString 来解析。

    public class Appointment
    {
        public DateTime Start { get; set; }
        public DateTime End { get; set; }
    }
    
    public class AppointmentMap : ClassMap<Appointment>
    {
        public AppointmentMap()
        {
            Map(x => x.Start, "StartDateStringColumn");
            Map(x => x.End, "EndDateStringColumn");
        }
    }
    

    【讨论】:

    • 所以基本上你告诉我 Nhibernate 自己处理解析?..或者?
    • 是的,NHibernate 会自动进行转换。至少,如果将 DateTime 存储为 ISO8601 格式的 String,那就是。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2010-11-27
    • 2012-04-14
    • 2023-04-09
    • 2015-09-09
    • 2012-01-21
    相关资源
    最近更新 更多