Jak mogę wykonać LINQ do łączenia SQL bez dokładnego dopasowania? Na przykład powiedzmy, że mam tabelę form
z danymi John Smith (2)
i chcę dołączyć do tego pola Smith
w tabeli name
. Coś takiegoUżyj zawiera w LINQ do SQL dołączyć
var query =
from f in db.form
join n in db.name
on f.nameField like '%' + n.firstName + '%'
Chociaż kluczowe like
nie wydaje się być dla mnie dostępne.
Nie wiem, czy to jakiś dziwny błąd implementacji w moim kodzie, czy nie, ale to dało mi błąd: 'Tylko argumenty, które można ocenić na kliencie są su pported dla metody String.Contains. "Mam to do pracy używając' IndexOf' zamiast 'Contains' jak szczegółowe [tutaj] (http://stackoverflow.com/a/7574433/1080891) –
@CavynVonDeylen Hmm, to wydaje się być ograniczeniem Linq-SQL. 'string.Contains' jest standardowym mechanizmem w innych ORMach. –
@CavynVonDeylen można spróbować wykonać następujące 'od n w db.name.ToList(). Gdzie (x => f.nameField.Contains (x.firstName))'. Metoda '.ToList()' ocenia zestaw encji i umieszcza wszystko z bazy danych w pamięci. W ten sposób można użyć metody 'string.Contains()'. Po prostu bądź świadomy i nie oceniaj jednocześnie wszystkich obiektów w swoim stole. –