我有一個稱爲FiscalYear
的值類型,它基本上是一個整數的包裝。我也爲它實施了NHibernate.UserTypes.IUserType
。現在我可以將FiscalYear
類型的屬性直接映射到SQL類型,NHibernate會自動轉換它們。如何將原生SQL查詢結果映射到NHibernate中的自定義值類型列表?
這一切正常。但是現在我想執行一個本地SQL查詢來從數據庫中獲得財政年度列表。下面是當前的代碼:
public IEnumerable<FiscalYear> FiscalYears
{
get
{
var result = new List<FiscalYear>();
foreach (var fiscalYear in Session.CreateSQLQuery(FiscalYearsQuery).List<Int16>())
{
result.Add(new FiscalYear(fiscalYear));
}
return result;
}
}
是工作,但我的問題是:既然我已經執行了IUserType
爲FiscalYear
,是有可能簡化這個代碼是這樣的:
public IEnumerable<FiscalYear> FiscalYears
{
get
{
return Session
.CreateSQLQuery(FiscalYearsQuery)
.List<FiscalYear>();
}
}
不幸的是,這是行不通的。使用Transformers.AliasToBean
也沒有幫助,因爲FiscalYear
是一個值類型而不是實體。
我認爲這確實是一件容易做到的事情,但我迄今爲止的所有嘗試都失敗了。我想我只是錯過了什麼?
我不認爲有這個 –