2012-06-12 45 views

Trả lời

11

Hãy thử điều này

SessionInstance.Query<Request>().Max(x => (int?)x.Code); 
+0

Tại sao dàn diễn viên thực hiện công việc này? Có phải 'x.Code' khác gì' int? '? (Tôi chỉ muốn học, không quảng bá câu trả lời của riêng mình). –

+0

@GertArnold Tôi không biết, nó chỉ hoạt động :) Nhưng tôi nghĩ rằng đó là một cái gì đó liên quan đến nhà cung cấp LINQ Nhibernate. –

+1

Ok, cảm ơn phản hồi của bạn. Có lẽ ai đó có thể làm sáng tỏ điều này. –

1

Tôi nghĩ rằng điều này sẽ làm việc với LINQ-to-Nhibernate:

var q = SessionInstance.Query<Request>().Select(e => e.Code) 
    .DefaultIfEmpty().Max(); 

hoặc có thể DefaultIfEmpty(<some value>).

+0

Giải pháp của bạn cho nhiều bản ghi trong cơ sở dữ liệu để thực hiện không phù hợp. – Ehsan

+0

Tại sao không? DefaultIfEmpty sẽ không tìm nạp thêm bản ghi, nó sẽ chỉ thêm một giá trị nếu trình tự trống. –

+3

DefaultIfEmpty cho nhà cung cấp LINQ NHibernate không được triển khai và ném ngoại lệ như của NHibernate 3.3.1.4000 phiên bản –

Các vấn đề liên quan