我有一个名为Entry的课程。此类作为名为TopicsOfInterest的字符串集合。在我的数据库中,TopicsOfInterest由一个单独的表表示,因为它与条目及其感兴趣的主题之间存在一对多的关系。我想使用nhibernate来填充这个集合,但由于表存储的很少(只有一个条目id和一个字符串),我希望我能以某种方式绕过创建一个类来表示它以及所有这些(映射,配置等。)
这可能,如果可行,怎么样?我正在使用流利的Nhibernate,所以特定的东西会更有帮助。
答案 0 :(得分:2)
public class Entry
{
private readonly IList<string> topicsOfInterest;
public Entry()
{
topicsOfInterest = new List<string>();
}
public virtual int Id { get; set; }
public virtual IEnumerable<string> TopicsOfInterest
{
get { return topicsOfInterest; }
}
}
public class EntryMapping : ClassMap<Entry>
{
public EntryMapping()
{
Id(entry => entry.Id);
HasMany(entry => entry.TopicsOfInterest)
.Table("TableName")
.AsList()
.Element("ColumnName")
.Cascade.All()
.Access.CamelCaseField();
}
}
答案 1 :(得分:0)
我有一个类似的要求来映射浮动集合。
我正在使用Automapping来生成我的整个关系模型 - 你暗示你已经有了一些表,所以这可能不适用,除非你选择切换到Automapping方法。
事实证明,NHibernate不会自动收集基本类型的集合 - 您需要覆盖。
请参阅我对自己问题How do you automap List or float[] with Fluent NHibernate?的回答。
我提供了很多示例代码 - 您应该能够将“string”替换为“float”,并使其正常工作。注意解释性文本中的陷阱。