我对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;)
答案 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");
}
}
这种接缝适用于我的单元测试。希望将来不会产生任何更大的问题。
如果有人对此有疑问,请告诉我。