2012-07-31 19 views
5

Bunu Linq'de gerçekleştirmenin en iyi yolu olup olmadığından emin değilsiniz.Linq: Dize sütununun bir değere sahip olup olmadığını kontrol etme (yani boş veya boş değil)

EMailAddress1'in bir değer içerdiği CRM 2011'de Kişi kayıtlarını seçmeye çalışıyorum.

Where c.EMailAddress1 > "" 

Where Not String.IsNullOrEmpty(c.EMailAddress1) 

Yani Tamam çalışmak gibi olan bu, çalışıyor bitti: ben hem çalıştı aşağıdaki NEREDE hükümler istisnalar neden

Where Not c.EMailAddress1.Equals(String.Empty) _ 
And Not c.EMailAddress1.Equals(Nothing) 

Ama bu en verimli olup olmadığını sadece belli değilim yöntem .. çok zarif görünmüyor. Bir dize sütununun bir değerinin olup olmadığını kontrol etmenin daha iyi bir yolu var mı?

+1

Eğer string.IsNullOrEmpty kullandığınızda, alıyorsanız istisna nedir? –

+0

Hangi veri türü EMailAddress1 nedir? –

+0

@ForteL. istisna "Durumun. Bir varlık üyesinin geçersiz bir özelliği veya yöntemi çağırdığı" geçersizdir. Veri tipi String'dir. –

cevap

4

olarak Linq CRM için here gerçekten sınırlı olduğunu söyledi. Bu yüzden String.IsNullOrEmpty'yi kullanamazsınız.

Ancak, bunu yapmak için çalışmalısınız: Bir alanın boş olduğu zaman

Where c.EMailAddress1 IsNot Nothing 

, bu veritabanına (asla boş) null şekilde ayarlanır. Bu çizgi sizin durumunuz için yeterli olmalı.

Selamlar,

Kévin

+0

Bağlantı için teşekkürler. Ayrıca "" (boş dizge, null değil) için de kontrol etmek istiyorum, bu yüzden tek başına hiçbir şey yeterli olmayacaktır. Yeterince adil, 2 koşul kullanılarak yapılması gerektiği gibi görünüyor. –

+1

Aslında, kullanıcı alanı boş bırakırsa, NULL olacaktır. Eğer linq kullanarak boş dizgeye bakarsanız hiç bir sonuç bulamazsınız. Yani "Hiçbir Şey Yok" yeterli olmalı. –

+0

Bu sadece bir Linq davranışı mı? Birçok veritabanı tasarımı null sütunları önler. Bu durumda CRM 2011'den emin değilim. Ama db bir sütun varsayarak VarChar DEĞİL NULL, linq sonra boş ve "" (boş) farklı davranır? –

2

sadece yapın:

Where c.EmailAddress <> "" 
+0

Bu durum ayrıca şu istisnayı da yükseltir: "Geçersiz", bir koşul üyesi bir geçersiz özellik veya yöntem çağırıyor. " –

+0

(İşlev (ler) s.EmailAddress <> "") = çalışıyor! Boş ve boş dizeler seçili değil. –

İlgili konular