Отображение свойства DateTime на метку времени mysq + fluentnhibernate - PullRequest
1 голос
/ 06 февраля 2010

У меня небольшая проблема с 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 Ответ

2 голосов
/ 07 февраля 2010

Нашел ответ на мою маленькую проблему:)

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

Это швы для работы в моих модульных тестах. Надеюсь, что в будущем это не вызовет больших проблем.

Если кто-нибудь столкнется с проблемой, пожалуйста, дайте мне знать.

...