如何解决C#NHibernate Joined-Subclass取得问题
| 我有以下映射的类: <class name=\"Company\" table=\"Company\">
<id name=\"ID\" column=\"CompanyID\">
<generator class=\"native\"/>
</id>
<joined-subclass name=\"CompanyAccounting\" table=\"company_accounting\" lazy=\"true\">
<key column=\"CompanyID\"/>
</joined-subclass>
<joined-subclass name=\"CompanyCarbon\" table=\"company_carbon\" lazy=\"true\">
<key column=\"CompanyID\" />
</joined-subclass>
</class>
现在,以下测试失败:
var company = CompanyAdapter.Get<Company>(_session,32);
Assert.IsNotNull(company);
var client = CompanyAdapter.Get<CompanyClient>(_session,32);
Assert.IsNotNull(client);
但是以下成功:
var client = CompanyAdapter.Get<CompanyClient>(_session,32);
Assert.IsNotNull(client);
var company = CompanyAdapter.Get<Company>(_session,32);
Assert.IsNotNull(company);
第一次测试失败的原因是因为NHibernate将Company提取为CompanyAccounting,因为Company(32)既是会计公司又是客户,并且当我致电Session.Get后,它已将Company提取为CompanyAccounting,所以它不会返回数据库并检查是否存在CompanyClient的条目,并假设Company只能在子类上,是否有必要指定它可以从所有子类继承?解决方法
我最终要做的是重构我的班级,而不是
类公司,
CompanyClient类:公司,
class CompanyAccounting:公司
我使CompanyClient和CompanyAccounting不是从Company继承的,并将Company作为
<one-to-one>
关系添加,这是这些类的主键。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。