将DateTime属性映射到时间戳mysq + fluentnhibernate

时间:2010-02-06 09:47:26

标签: mysql fluent-nhibernate mapping

我对fluentNhibernate和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 个答案:

答案 0 :(得分:2)

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

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");
    }
}

这种接缝适用于我的单元测试。希望将来不会产生任何更大的问题。

如果有人对此有疑问,请告诉我。