2016-04-01 25 views
0

işlevinde byte[] sütununu, SQL Server'ı kullanarak sorguya giriş türü olarak byte[] bir sql veritabanında arama yapmaya çalışıyorum. İyi çalışacak olan Unstains işlevini kullanabilir. Alan şimdi şifrelenmiştir, bu yüzden aynı aramayı elde etmem gerekiyor ama şimdi byte[] ile.Linq'de arama yapamaz [] in Linq işlevi kullanamaz

alıyorum hata iletisi:

yüzden burada ne kullanmalısınız 'İçeren' için

byte[]

bir tanım içermiyor. Aşağıdaki örnekte yer alan tüm alanlar tip bayttır [].

(from v in db.Vendors 
    where v.Code.Contains(item.Code) || 
    v.TradingName == item.TradingName 
    select v).ToListAsync(); 
+0

item.Code ayrıca bir bayt [] veya sadece bir bayt mı? –

+0

Merhaba Luc bir byte [] – Mark

cevap

0

Gerçekliğe hoş geldiniz. SQL'de ikili alanlar aranamaz. Kim alan bilgisi için şifreleme kullanmaya karar verdiyse - açıkça onun ne anlama geldiği hakkında ödevini yapmayı unutmuş. Üstüne, cidden, eğer bu yaklaşımınız işe yararsa - o da bir aptalca uyguladı (aşağıdaki gibi: çatlamak için son derece kolay) şifreleme şeması.

+0

Merhaba TomTom, şu ana kadarki yaklaşımı izliyor: https://janhannemann.wordpress.com/2013/11/10/simple-encryption-for-windows-winrt-and-windows- Telefon/bu yöntemleri değiştirmeye başladığımıza kadar bu konuya girmemiştik. Belki sql içindeki simetrik bir anahtar kullanmak daha iyi bir yaklaşım olabilir mi? – Mark

+0

Tat yaklaşımı, şifrelenmiş veriler üzerinde arama yapmak için tüm verilerin yüklenmesi ve şifresini çözmeyi gerektirir. Çalışır - ve yavaştır. SQL Server şifreleme yöntemlerini kullanın. Bu yıl sql 2016 ile gelen Row & Field seviyesi güvenliği. – TomTom

+0

Merhaba TomTom cevabınız için teşekkürler, verilerinizi SQL'de nasıl şifreleyeceğimiz konusunda bir kayıp var, ancak dediğiniz sürece arama yapamayız ve hepsini çekip çıkardığımızı anladık. şifresini çözerek daha yavaş olanı arıyor. Bu makaleye bakınca, https://blogs.msdn.microsoft.com/sqlsecurity/2015/08/27/using-always-encrypted-with-entity-framework-6/ SQL Server şifreleme yöntemlerine bir göz atacağız. Teşekkürler – Mark