我有一個由linq查詢到nhibernate。LINQ查詢異常使用屬性名稱的「類型」
var q = SessionInstance.Query<Evidence>()
.Select(x => new Evidence(x.Id)
{
Type = x.Type,
StartDate = x.StartDate,
EndDate = x.EndDate
})
.ToList();
它有一個例外,此消息:
NHibernate.Exceptions.GenericADOException : Could not execute query[SQL: SQL not available] {"Exception has been thrown by the target of an invocation."} {"Specified cast is not valid."}
但通過重命名Type
屬性Type1
,我的問題得到解決。
q = q.Select(x => new Evidence(x.Id)
{
Type1 = x.Type1,
StartDate = x.StartDate,
EndDate = x.EndDate
});
爲什麼?
是否存在使用解決方案Type
名稱的屬性?
UPDATE: 證據類是:
public class Evidence
{
public long Id;
public EvidenceEnumType? Type;
public DateTime? StartDate;
public DateTime? EndDate;
}
堆棧跟蹤
at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results)
at NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters)
at NHibernate.Impl.ExpressionQueryImpl.List()
at NHibernate.Linq.NhQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery)
at NHibernate.Linq.NhQueryProvider.Execute[TResult](Expression expression)
at Remotion.Data.Linq.QueryableBase`1.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at RCISP.NHibernate.Repository.EvidenceIssuanceRepositoryNh.Search(SearchEvidenceIssuanceDto dto)
at RCISP.Domain.Services.EvidenceIssuanceService.SearchCommand(IRepositoryLocator locator, SearchEvidenceIssuanceDto dto) in D:\Users\Zeynali\Aseman\src\RCISP.Domain\Services\Issuance\EvidenceIssuanceService.cs:line 62
at RCISP.Domain.Services.EvidenceIssuanceService.<>c__DisplayClass4.<Search>b__3(IRepositoryLocator locator) in D:\Users\Zeynali\Aseman\src\RCISP.Domain\Services\Issuance\EvidenceIssuanceService.cs:line 58
at RCISP.NHibernate.TransManager.TransManagerNh.ExecuteCommand[TResult](Func`2 command)
什麼是堆棧跟蹤? –
@OskarBerggren:我加了'Stack Trace'。 – Ehsan
聽起來像它可能是一個NH臭蟲給我。如果你可以創建一個最小的測試用例來揭示問題並提交給NHibernate的Jira問題跟蹤器,那將會很好。 –