我收到以下錯誤順序按NHibernate的原因「Antlr.Runtime.NoViableAltException」
型「Antlr.Runtime.NoViableAltException」引發的異常。 [.OrderBy [ORM.Entities.Core.Message,System.DateTime](。其中[ORM.Entities.Core.Message](NHibernate.Linq.NhQueryable`1 [ORM.Entities.Core.Message], Quote( (x,)=> (AndAlso(AndAlso(String.op_Equality(x.ConcerningItemType,p1), Equal(x.ConcerningItemId,p2)),OrElse(Equal(x.Sender.Id,p3), .Any [ORM.Entities.Core.MessageRecipient](x.Recipients,(r,)=> (Equal(r.Employee.Id,p4)),))))),),Quote((x,)=> (.FirstORM.Entities.Core.AuditGroup.Created)),)]
當我有一個IQueryable的結果集(剛剛施加一些邏輯到它),然後我嘗試通過一個子屬性來訂購它在c之前變量阿靈ToList()
var results = query.Where(x => x.ConcerningItemType == "1422" && x.ConcerningItemId == EnquiryId && //Messages for this Enquiry
(x.Sender.Id == EmployeeId || x.Recipients.Any(r => r.Employee.Id == EmployeeId)));
然後我試着訂購這會導致一個錯誤
var results2 = results.OrderBy(x => x.AuditGroup.First().Created).ToList();
如果我下面的,而不是我沒有得到一個錯誤(移動tolist,迫使它打數據庫)
var results3 = results.ToList().OrderBy(x => x.AuditGroup.First().Created);
詢問請求更多信息
AuditGroup類
public class AuditGroup : Entity
{
public virtual string Guid { get; set; }
public virtual string PageName { get; set; }
public virtual string ControlId { get; set; }
public virtual string ItemType { get; set; }
public virtual int ItemId { get; set; }
public virtual int EmployeeId { get; set; }
public virtual string IPAddress { get; set; }
public virtual string Parameters { get; set; }
public virtual DateTime Created { get; set; }
}
消息等級
public class Message : Entity
{
// This class represents the standard address fields, for reuse in other entities
//
public virtual int Id { get; set; }
public virtual int ConcerningItemId { get; set; }
public virtual String ConcerningItemType { get; set; }
public virtual String Subject { get; set; }
public virtual String Body { get; set; }
public virtual int RecipientCount { get; set; }
public virtual String RowStatus { get; set; }
public virtual Employee Sender { get; set; }
public virtual ICollection<MessageRecipient> Recipients { get; set; }
//eww have to do this to be able to access the created date of the message (stored in AuditGroup... Stupidly!)
public virtual ICollection<AuditGroup> AuditGroup { get; set; }
}
消息映射
按照要求我已經提供了映射類和兩個實體類 – Steve
你嘗試過使用'Alias'嗎? –
爲什麼我需要在消息已知它的審覈組集合時創建別名? – Steve