NHibernate - 我是否必须有一个类与表接口?

时间:2009-12-02 22:25:39

标签: nhibernate

我有一个名为Entry的课程。此类作为名为TopicsOfInterest的字符串集合。在我的数据库中,TopicsOfInterest由一个单独的表表示,因为它与条目及其感兴趣的主题之间存在一对多的关系。我想使用nhibernate来填充这个集合,但由于表存储的很少(只有一个条目id和一个字符串),我希望我能以某种方式绕过创建一个类来表示它以及所有这些(映射,配置等。)

这可能,如果可行,怎么样?我正在使用流利的Nhibernate,所以特定的东西会更有帮助。

2 个答案:

答案 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”,并使其正常工作。注意解释性文本中的陷阱。