QueryOver API'sini kullanarak NHibernate sorgusuna aşağıdaki LINQ'ı nasıl uygularım? Bu, DB'nin tüm Kayıtlarının bir listesini alır ve "İade Edilen" durumu olan Öğeleri listenin sonuna yerleştirir. Durum, veritabanındaki bir nvarchar ile eşlenen bir Enum'dir.QueryOver API OrderBy Kullanarak Durum
var workList = session.Query<Item>()
.OrderBy(i=> i.Status == Status.Returned ? 1 : 0)
.ToList();
SQL eşdeğeri ben
ınvalidoperationexception
var workList = session.QueryOver<Item>() .OrderBy(i => i.Status == Status.Returned ? 1 : 0).Asc .ToList();
Ama şu olsun çalıştı Tabii ettik
SELECT * FROM Item ORDER BY case when Status='Returned' then 1 else 0 end
geçerli: Değişken 'i' türündeki 'MyProject.Model.Entities.Item' '' Kapsamından başvurulan, ancak
Ben bu durumda diğer bazı işlevselliği ile yaşanan bir sorundan dolayı LINQ kullanamazsınız tanımlı değil.
Harika çalışıyor olsa da Alias bu durumda ne yapıyor? –
Sadece "Restrictions.Where" aramasının içindeki tabloya başvurmanızı sağlar. İsterseniz, Restrictions.Where- (i => i.Status == Status.Returned) seçeneğini de deneyebilirsiniz, ancak bu sürümde garip sonuçlar aldım. –
Tam olarak ihtiyacım olan şey, teşekkürler. – iamserious