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: \

Était-ce utile?

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)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top