Tôi đang cố trả về một danh sách SimpleQuery truy vấn một bảng và sử dụng IN. tôi có thể có được điều này để làm việc sử dụngHiber Nhibernate nơi IN truy vấn
return new List<Jobs>(
ActiveRecordMediator<Jobs>.FindAll(Expression.In("ServiceId", ids))
);
Tuy nhiên điều này thực sự rất rất chậm. Vì vậy, id muốn làm điều gì đó như thế này
SimpleQuery<Job> query =
new SimpleQuery<Job>(@"from Job as j where ? in (j.ServiceId)", ids);
return new List<Job>(query.Execute());
Tuy nhiên tôi không thể làm cho SimpleQuery hoạt động. Tôi không thể tìm thấy bất kỳ tài liệu nào đề cập đến điều này và hy vọng có ai đó ở đó sẽ có thể trợ giúp.
Cảm ơn
Cảm ơn bạn đã trả lời. tôi thay đổi nội dung truy vấn của tôi dựa trên trả lời của bạn SimpleQuery truy vấn = new SimpleQuery ( @ "từ công việc như j đâu j.SecondName = (: name) và ServiceId trong (: serviceIds)"); truy vấn.SetParameter ("serviceIds", id); truy vấn.SetParameter ("tên", tên); trả về Danh sách mới (truy vấn.Execute()); Vấn đề duy nhất bây giờ là mảng int của id tôi đang đi vào. Trường trong cơ sở dữ liệu là loại int, nếu tôi sử dụng IN trên bất kỳ trường chuỗi nào hoạt động tốt và nếu tôi vượt qua một giá trị int đơn nó hoạt động . Làm thế nào tôi có thể vượt qua một mảng? Cảm ơn –
Gilbert
Opps, gọi sai phương thức Hãy thử sử dụng q.SetParameterList thay vì – Noel
Điều này cũng có thể hữu ích cho bạn cũng như http://www.nhforge.org/doc/nh/en/index.html#manipulatingdata-queryinterface – Noel