代码之家  ›  专栏  ›  技术社区  ›  Dejan

将datetime属性映射到时间戳mysq+fluetnhibernate

  •  1
  • Dejan  · 技术社区  · 15 年前

    我对FluentHibernate和MySQL有点问题。 我想映射我的实体:

    public class Topic
    {
        public Topic()
        {
            ParentTopic = null;
        }
    
        public virtual Guid Id { get; set; }
        public virtual string Name { get; set; }
        public virtual DateTime CreatedAt { get; private set; }
        public virtual Guid CreatedBy { get; set; }
        public virtual IList<Post> Posts { get; set; }
        public virtual Topic ParentTopic { get; set; }
    }
    

    到同名的表。我最大的问题是如何绘制 CreatedAt 所以在数据库中,我得到了一个时间戳,它只在插入时更改,在更新时被忽略。

    THX);

    1 回复  |  直到 15 年前
        1
  •  2
  •   Dejan    15 年前

    找到了我的小问题的答案:)

    public class TopicMap : ClassMap<Topic>
    {
        public TopicMap()
        {
            Table("Topics");
            Id(t => t.Id).GeneratedBy.Guid();
            Map(t => t.CreatedAt).Not.Nullable().Generated.Insert().CustomSqlType("timestamp");
            Map(t => t.CreatedBy).Not.Nullable();
            Map(t => t.Name).Not.Nullable().Length(500);
            HasMany(t => t.Posts);
            References(t => t.ParentTopic).Nullable().Cascade.All().ForeignKey("FK_Topic_ParentTopic");
        }
    }
    

    在我的单元测试中,这个接缝可以工作。希望以后不会产生更大的问题。

    如果有人对此有异议,请告诉我。