【问题标题】:Subsonic ignoring TimeSpan property亚音速忽略 TimeSpan 属性
【发布时间】:2010-06-10 15:33:32
【问题描述】:

由于某种原因,我的班级的 TimeSpan 属性没有被 Subsonic 持久化到数据库中,它只是被忽略了!?所有其他属性都保存正常。我正在使用 SimpleRepository 和 RunMigrations,Subsonic v3.0.0.3。

public TimeSpan Time { get; set; }

不支持 TimeSpan 吗?

【问题讨论】:

    标签: subsonic subsonic3 subsonic-simplerepository


    【解决方案1】:

    TimeSpan 不是有效的 2005/2008 SQL 数据类型。

    将其存储为基于数字的 SQL 数据类型。根据您需要的准确性将您的 TimeSpan 转换为适当的持续时间:

    // Define an interval of 1 day, 15+ hours.
    TimeSpan interval = new TimeSpan(1, 15, 42, 45, 750); 
    Console.WriteLine("Value of TimeSpan: {0}", interval);
    Console.WriteLine("{0:N5} minutes, as follows:", interval.TotalMinutes);
    

    请注意,interval.Minutes 和 interval.TotalMinutes 之间存在明显差异!

    http://msdn.microsoft.com/en-us/library/system.timespan.totalminutes.aspx

    因此:

    // my duration
    int duration = Time.TotalMinutes;
    // now insert this into the database
    

    【讨论】:

    • 谢谢,但是当我使用 SimpleRepository 时,这意味着必须更改我的对象的数据类型纯粹是为了将数据插入数据库,然后每次我想使用它时进行转换 - 除非我误会了吗?
    • 嗨,ProNotion。我的错。我误读了你的问题。另一个用户有类似的(ActiveRecord 而不是 SimpleRepository)TimeSpan 转换问题,John Sheehan 的回答可能与您的问题有关:stackoverflow.com/questions/1448626/… 也许您应该在 SubSonic Google Group 上提出这个问题:groups.google.com/group/subsonicproject
    • 通过在 TimeSpan 中存储毫秒数的整数表示,您的建议对我来说很好。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多