C#-Fluent-NHibernate映射问题

C#-Fluent-NHibernate映射问题,c#,fluent-nhibernate,C#,Fluent Nhibernate,有没有办法避免中显式的Id映射 我希望它以某种方式自动生成条目id,这样我就不必将其作为类的一部分引入 公共类映射 { 公共字符串名称{get;set;} 公共日期时间时间戳{get;set;} } 公共类映射:类映射 { 公共海姆图() { 不是。懒汉(); //我不太确定这条线是怎么运作的,但是 //它未通过映射单元测试。 CompositeId().KeyProperty(x=>x.Name); Map(x=>x.Name).Not.Nullable().Length(64); Map(x

有没有办法避免中显式的
Id
映射

我希望它以某种方式自动生成条目id,这样我就不必将其作为类的一部分引入

公共类映射
{
公共字符串名称{get;set;}
公共日期时间时间戳{get;set;}
}
公共类映射:类映射
{
公共海姆图()
{
不是。懒汉();
//我不太确定这条线是怎么运作的,但是
//它未通过映射单元测试。
CompositeId().KeyProperty(x=>x.Name);
Map(x=>x.Name).Not.Nullable().Length(64);
Map(x=>x.Timestamp).Not.Nullable();
}
}

创建一个基类,所有映射实体都从该基类继承,然后将Id属性添加到基类。

创建一个基类,所有映射实体都从该基类继承,然后将Id属性添加到基类。

如果您希望实体中没有Id,您仍然需要映射一个Id,以便NHibernate知道要使用的数据库列

你可以打电话

Id<TColumnDataType>("column_name");

我知道你可能不想这样做;我只是想让您知道有一个折衷办法。

如果您希望实体中没有id,您仍然需要映射一个id,以便NHibernate知道要使用的数据库列

你可以打电话

Id<TColumnDataType>("column_name");
我知道你可能不想这样做;我只是想让你知道,这是一个权衡

public class HeyMapping
{
    protected internal int Id { get; set; } // persistence concern

    public virtual String Name { get; set; }
    public virtual DateTime Timestamp { get; set; }
}