抽象基本クラスから継承されたプロパティにNHibernateがアクセスできないのはなぜですか。句のaQueryOver
でプロパティを使用しようとすると、取得しますWhere
プロパティを解決できませんでした:ID:TheWorkshop.Web.Models.Customer
var customer = Session.QueryOver<Customer>()
.Where(c=>c.ID ==id)
.SingleOrDefault<Customer>();
Intelisenseは、クエリの作成とソリューションのコンパイルを支援してくれたので、クラスにプロパティがあります。Customerのプロパティは、保護されたフィールドを公開するから継承する抽象クラスから継承されます。ID
Customer
ID
Contact
DomainEntity<T>
public abstract class DomainEntity<T>
{
protected Guid _persistenceId;
//...
}
public abstract class Contact : DomainEntity<Contact>
{
public virtual Guid ID
{
get { return _persistenceId; }
}
public virtual Address Address
{
get { return _address; }
set { _address = value; }
}
//...
}
およびマッピングファイル内
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="TheWorkshop.Web"
namespace="TheWorkshop.Web.Models"
default-access="field.camelcase-underscore"
default-lazy="true">
<class name="Contact" table="Contacts" abstract="true">
<id name="_persistenceId" column="ID" type="Guid" access="field"
unsaved-value="00000000-0000-0000-0000-000000000000">
<generator class="guid.comb" />
</id>
<!-- ... -->
<union-subclass name="Customer" table="Customers">
から更新した同様の質問への回答に続いて、私はまだ同じ問題を抱えています。NHibernate 3.3.3-CR1
NHibernate 3.3.2.4000