Nhibernate linq bir "In" yan tümcesi ile bir sorgu oluşturmak için almak mümkün mü? Örneğin. - Where AnID in (x,y,z)
?Nhibernate Linq In yan tümce
20
A
cevap
28
Tüm olası LINQ sorgularını oluşturma konusunda nHibernate durumunu bilmiyorum, ancak IN oluşturmak için .Contains()
kullanabilmeniz gerekir.
var list = new int[] { x, y, x };
var q = db.Entities.Where(e => list.Contains(e.AnID));
3
Anlaşıldı, bu işe yarıyor. Ben değil ('değil de' 'değil' net olurdu ne zaman
...
from
mytable t0_
where
case
when t0_.testValue in (
@p0 , @p1 , @p2
) then 1
else 0
[email protected]
@p0 = 9 [Type: Int32 (0)],
@p1 = 99 [Type: Int32 (0)],
@p2 = 109 [Type: Int32 (0)],
@p3 = False [Type: Boolean (0)],
...
bu 'durum' olarak biraz tuhaf görünüyor (GA 3.3.0 itibariyle) olsa garip olabilmesi için oluşturulan SQL bulundu Her satırı okumayı planlıyorum, ancak bir iz/profilde belki). Ben
.Where(e => !list.Contains(e.AnID))
kullandıysanız
(... sonra o gün ...)
Ben SQL yukarıdaki 'garip' bir seçim ben
.Where(e => list.Contains(e.AnID) == false)
kullanılan tek zaman olduğunu fark etti
Oluşturulan SQL çok daha temizdir ('içinde değil')
0
NHibernate, RestrictionEx'in bir parçası IsIn seçeneğine sahiptir. gerilimler
x => x.Name.IsIn (yeni [] { "a", "b"})
Evet, NHibernate 3.1.0 GA ile çalışır –