mysql - 将 DateTime 属性映射到时间戳 mysql+fluent nhibernate

标签 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 的映射,以便在数据库中获得一个时间戳,该时间戳仅在插入时更改而在更新时被忽略。

谢谢;)

最佳答案

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

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

这在我的单元测试中很有用。希望以后不要产生更大的问题。

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

关于mysql - 将 DateTime 属性映射到时间戳 mysql+fluent nhibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2212697/

相关文章:

php - ZendFramework - 如何将 CSV 文件加载到数据库中,重复插入下一条记录而不自动退出?

mysql - 连接表的条件比引用条件更快

c# - NHibernate SaveOrUpdate 合并子集合

c# - Fluent NHibernate(带自动映射)不以多对多方式保存连接表值

java - 通过 ID 存储数学问题和关键字之间的映射

php - mysql 创建一个新行而不是更新现有行

mysql - 指针类型与 mysql_store_result 不兼容

c# - FluentNHibernate 使用额外数据映射连接表

java - 通过hibernate映射将数据插入数据库表失败

java - 使用 Astyanax 将 Cassandra 查询结果转换为 POJO