2013-10-21 5 views
7

Bu belgenin verilerini bayt dizisi olarak saklayan bir Belge sınıfım var. LINQ öğelerini Varlıklar kullanarak dizinin boyutunu kontrol etmem gerekiyor.LINQ öğelerini varlıklara kullanarak bayt dizisi uzunluğu nasıl alınır?

[long Linq query here...] o.Data.Length < 800000) 

sorun Aşağıdaki özel durum almak edilir:.

'ArrayLength' LıNQ varlıkları desteklenmez LINQ ifade düğüm türü"

Aşağıdaki denedi

bayt dizinin boyutunu kontrol etmek başka bir yolu var mı?

+0

Veritabanı, veritabanında 'bayt []' nasıl saklanır? – Johnny5

+0

Bu tek satıra kadar daraltın mı? Sorgunun geri kalanı gönderilmeye değer olabilir. Ayrıca, 800000 sabit mi, yoksa bir şekilde mi belirleniyor? – Ocelot20

+0

@ Johnny5 BLOB olarak, –

cevap

3

Kişisel LINQ varlıkları için sorgu bu mümkün olması koşuluyla, SQL içine çevrilmiştir. Çevirici Array.Length öğesini herhangi bir SQL yöntemiyle eşlemediğinden, bunu LINQ içinde Varlıklar sorgularına kullanamazsınız.

Yapabilecekleriniz, tablonuza bir sütun eklemek VEYA uzunluğu hesaplayan ve bir sütun olarak gösteren bir VIEW oluşturmaktır. O zaman bu alana karşı sorgulayabilirsiniz ve işe yarayacaktır.

+0

numaralı telefonu arayabilir veya saklı bir prosedür oluşturun. – James

+0

... true, ancak bir VIEW ile çalışmak daha kolay olurdu, bir VIEW üzerinde sorgulayabilirsiniz. –

+0

evet katılıyorum, sadece başka bir alternatif veriyordum :) – James