我正在尝试在Fluent NHibernate中进行映射,但我不能。
我有一个通用的课程列表。
public class ListHistory<T> : List<T> where T : IListHistoryItem, new()
public class ListHistoryItem<TValue> : IListHistoryItem
{
public DateTime Time { get; set; }
public TValue Value { get; set; }
}
这个列表是历史性的,表格会是(ID,Time,Value)。
在DTO:
public class ExampleDTO
{
public virtual ExempleID { get; set; }
public virtual ListHistory<ListHistoryItem<String>> HistoryString { get; set; }
public virtual ListHistory<ListHistoryItem<Int32>> HistoryInt32 { get; set; }
}
映射:
Table("Example");
Id(x => x.ExempleID).GeneratedBy.Assigned();
HasMany(x => x.HistoryString).Table("ExampleHistoryString").Element("Value", a => a.Not.Nullable()).KeyColumn("ExempleID");
HasMany(x => x.HistoryInt32).Table("ExampleHistoryInt32").Element("Value", a => a.Not.Nullable()).KeyColumn("ExempleID");
只有我收到错误:
无法确定类型:ListHistoryItem`1 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]],XXX,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null,对于列:NHibernate.Mapping.Column(Value)
我该如何解决这个问题? 想要一个具有历史意义的通用类。因为我将在各种DTO和各种属性中使用。