2010-02-06 2 views
1

У меня есть небольшая проблема с fluentNhibernate и MySQL. Я хотел бы, чтобы отобразить свою сущность:Сопоставление свойства DateTime с меткой времени mysq + fluentnhibernate

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, так что в базе данных я получаю временную метку, которая изменяется только при вставке и игнорируется при обновлении.

ТНХ;)

ответ

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

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

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

+0

Не проблема, просто предложение. 'GeneratedBy.Guid()' не требуется, потому что Fluent NHibernate может определить из свойства, как его создать. –

Смежные вопросы