Buna benzer tablolar üzerinde birden çok ile Nhibernate sorgu katılmak Üyelik Bunun nasıl yapılacağını anlatan bir şansım vardı. Baska öneri?NHibernate Sol Dış
cevap
Aslında bunu çözdüm. Sen boş
.CreateCriteria("Interactions", "i", NHibernate.SqlCommand.JoinType.LeftOuterJoin)
.Add(Expression.Or(Expression.Eq("i.ActingUser", user), Expression.IsNull("i.ActingUser")))
bu targetpost id katılmak bir sol oluşturur ve sonra tüm olmayan boş/olmayan kullanıcı etkileşimlerini ortadan kaldırır için çek yapmak gerekir.
Uzun zamandır ihtiyacım olanı yapmayan her tür gönderiyi kontrol ederken harcadım ve yazdıklarınız aradığına en yakın olanı.
Testlerimden (nHibernate 3 ile) sorgunuz doğru değil. Aslında Ölçütlerinizin SQL daha şuna benzer: Etkileşim en ActingUser 202 olduğunu veya hiç etkileşim yazı için varolduğunu sadece mesaj/etkileşimlerini döndürür
SELECT *
FROM [Posts] p
LEFT JOIN [PostInteractions] i
ON p.PostId = i.PostID_TargetPost
WHERE (i.UserID_ActingUser = 202 OR i.UserID_ActingUser IS NULL)
. Sonunda bunu anladım çok daha fazla testlerden sonra
...bu (vb.net) deneyin: Bir "withClause" seçeneğini kullanarak CreateCriteria işlevine bir aşırı yük var
session.CreateCriteria(Of Posts)("p") _
.CreateCriteria("Interactions", "i", _
NHibernate.SqlCommand.JoinType.LeftOuterJoin, _
Expression.Eq("i.ActingUser", user))
. Bu benim için kısaca çalıştı ve ben de senin aradığın şeyin olduğuna inanıyorum.
Ben konu bayağı eski biliyorum ama nHibernate sorguları büyük örnekler için başkasının .... Ayrıca
, yardımcı olabilir (bu benim için büyük bir yardımcı oldu): http://ayende.com/blog/4023/nhibernate-queries-examples
Eğlencenin !
- 1. NHibernate HQL: "with" deyimi ile sol dış birleştirme çalışmıyor
- 2. nhibernate, bire-bir varlık üzerinde sol dış birleştirme oluşturuyor
- 3. Sol birleşim ve sol dış birleştirmeler arasındaki fark nedir?
- 4. Linq - Nokta gösterimi ile sol dış birleştirme
- 5. Dıştan Nasıl Dış Sol İki DataTable'a C# 'ya katılın?
- 6. Dinamik Linq ile sol dış birleştirme nasıl yapılır?
- 7. Sorgu sözdizimini kullanmadan Entity Framework'te sol dış birleştirme nasıl yapılır?
- 8. SQL birleştirme ve sol dış birleştirme: sonuçlar neden farklı?
- 9. , sol dış birleştirmeye sıralı tarihler için sql temp tablosu oluşturur
- 10. Mongo $ araması sol dış birleştirmeyse, eşleşmeyen belgeleri nasıl hariç tutar?
- 11. Bir sol dış birleştirmeyle bir Django queryset eklenmesi?
- 12. Üç tabloyu birleştirmek ve sol dış birleştirme kullanmak
- 13. Teradata SQL ayarlaması. Birden fazla sol dış birleştirmeyi yeniden yazma
- 14. Linq birden çok tablo için SQL sol dış birleştirmek
- 15. LINQ to SQL çoklu tablolar sol dış birleştirme
- 16. * Sağ * dış birleşim LINQ
- 17. SQL Server: sol sol masanın
- 18. NHibernate
- 19. NHibernate?
- 20. NHibernate
- 21. NHibernate
- 22. NHibernate
- 23. NHibernate
- 24. nHibernate
- 25. Çift yönlü dış birleşim
- 26. SOL MySQL
- 27. karşılaştırmak-nesne sol veya sağ tarafı sadece
- 28. Diğer koşullara bağlı olarak sol dış birleştirmeye koşul ekleme - SQL Server 2008
- 29. LINQ sol dış birleştirme sorgusu hatası: OuterApply uygun anahtarlara sahip olmadı
- 30. Sol Dış Bağlan ve Var olan Linq için SQL C# .NET 3.5