Conversion de SQL avec « jointure » s et « comme » s à LINQ
-
27-10-2019 - |
Question
Je suis nouveau à LINQ, et (malheureusement) je besoin de convertir une commande SQL foiré à LINQ. Il y a deux tables simples dans ma base de données. Premier tient les noms (Col. "Nom" et "NameID"), autre table contient des surnoms (Col. "Nick", "NickID", "FK_NameID"). Chaque surnom a ID et clé étrangère pointant vers le vrai nom (ID nom).
En utilisant C #, ce code a été utilisé pour retrive un surnom qui contient "SomeString" en elle:
comm = new SqlCommand("SELECT Name FROM Names INNER JOIN Nicks ON NameID = FK_NameID AND Nick LIKE '%" + SomeString + "%'", Connection);
En ce que j'ai vu après googler, « Comme » et « Join » dans la commande SQL pourrait produire compliqué Linq: \ Pouvez-vous me aider et me dire ce que l'expression LINQ serait égale à cette commande SQL que j'utilisais à ce jour ? Y at-il été de contourner DataSet Linq et d'utilisation, DataTables à la place? Je suis tout Linq-noob: \
La solution
Il est assez similaire en fait:
var query = from name in names
join nick in nicks on name.NameId equals nick.FK_NameId
where nick.Nick.Contains(SomeString)
select name.Name;
Vous devriez penser à vos noms de colonnes -. FK_NameId
serait mieux que NameId
(à mon avis)