2016-04-05 13 views
0

Bir veritabanımız ve bir tablosumuz var. Bu tabloda, bu tablonun öğeleri için kullanılabilir filtreleri depolamak için Filtreler sütunu vardır. ve biz veritabanından olanlarla karşılaştırmamız gereken müşteriden kısmi filtrelerimiz var. Örneğin:Böyle bir sorgu nasıl yazılır SELECT * FROM TABLE WHERE COLUMN LIKE '% "BLABLA": [% "BLABLA1"%]%' Entity Framework kullanarak

veritabanı filtre boyunca değeri:

"hayvan" [ "köpek", "CAT", "PARROT", "Yılan"]

ve alma istemciden

:

"HAYVAN": [ "PARROT"] bizim durumumuzda müşterinin f ise

İlter, bize ANIMAL ve PARROT filtre sütununda sahip olduğumuz için uygundur.

Yani her zamanki T-SQL böyle bir şey gibi yazılabilir olacaktır:

SELECT * FROM TableWithFilters WHERE Filter LIKE '%"ANIMAL":[%"PARROT"%]%' 

Ama ben bu kullanarak Entity Framework yazabilir ve mümkün en azından eğer bilmiyorum?

cevap

0

Sen not defterinde bunu yazdıktan olarak biraz etrafında bunu değiştirmek gerekebilir bu.

Veritabanından bir şeyler almak için LINQ kullanabilirsiniz, ancak bu, veritabanınıza nasıl bağlandığınıza bağlı olacaktır. Aşağıdaki bu yöntem 'ADO Veri Varlık Modeli' bağlantısını kurmuş ve kullanmıştır.

ADOClass _entity = new ADOClass(); 

var result = (from d in _entity 
       where Filter.Contains("PARROT") 
       select d).FirstOrDefault(); 

Bu

dikkate almak için% 100 doğru ama onun bir fikir olmayabilir.

LIKE operator in LINQ

:

Sen GİBİ operatör aşağıda gibi kullanmak
İlgili konular