我認爲這很容易找到,但我遇到了麻煩。我有一個類,它繼承了一個名爲EntityBase的類,它具有一個ID字段。基類看起來像這樣。使用NHibernate映射覆蓋列案例
//Here is the declaration
public abstract class EntityBase<IdType>
//here is the property
private IdType _id;
public virtual IdType ID
{
get
{
return _id;
}
set
{
_id = value;
}
}
這工作對大多數實體,但我們實際獲取來自於另一個數據庫上運行,這個問題不像我們的數據庫,它返回「ID」不「ID」我有一個存儲過程建立了一個實體試過幾件事情要覆蓋此,並設置ID,但我不斷收到以下錯誤
NHibernate.PropertyNotFoundException:找不到類財產「ID」二傳手
public class ListingMapping : IAutoMappingOverride<Listing>
{
public void Override(AutoMapping<Listing> mapping)
{
mapping.Map(x => x.ID).Column("Id");
mapping.Id(x => x.ID).Column("Id");
}
}
這裏的實體是如何獲得創建。
public Listing GetListingById(Guid ListingId)
{
IQuery query = GetSession().GetNamedQuery("GetListingById")
.SetParameter("ListingId", ListingId)
.SetResultTransformer(Transformers.AliasToBean<Listing>());
return (query.UniqueResult<Listing>());
}
我知道自動映射正在加載,因爲它們適用於其他類型,我們重寫該方案。希望這是足夠的信息,有人可以指引我朝着正確的方向發展。
是的,最後我得到了一個人來修改存儲的過程。我懷疑映射在這種情況下沒有做任何事情,但是謝謝你的確認。 – Kenn
這解決了我的問題!在我的情況下,屬性名稱爲ContactCode,但我使用CreateSQLQuery並傳遞了我的屬性的別名而不帶引號。花費引號後,我的問題得到解決。非常感謝你通過這個答案! –