我有两张相似的表格:
表1:
[ id ] | [ name ]
表2:
[ id ] | [ name ]
我需要只使用一个类读取/写入数据:
public class TwinTable
{
public virtual int Id { get; set; }
public virtual string Name1 { get; set; }
public virtual string Name2 { get; set; }
}
另外一个表可能有也可能没有指定Id的实体,并且两个表可能有也可能没有实体,因此Name1可以为null,Name2可以为null,并且它们都可以为null。
我不能改变数据库的结构,如果我必须添加一些东西,这不是一件好事。
希望得到你的帮助!
答案 0 :(得分:0)
一种解决方案是将Table1映射到一个类,然后将Table2映射为Table1的连接子类。如上所述,连接的子类将像您的TwinTable一样:
<class name="Class1" table="Table1" >
<id name="Id" column="id">
<generator class="identity" />
</id>
<property name="Name1" column="name" not-null="true" />
</class>
<joined-subclass name="Class2" table="Table2">
<key column="Id" />
<property name="Name2" column="name" not-null="true" />
</joined-subclass>