Remplissage de la liste d'objets à l'aide de dapper c#
J'ai deux tables dans ma base de données comme ceci:
Et j'ai cette classe:
class Ean
{
public string Code{ get; set; }
}
class Article
{
public int Id { get; set; }
public string Name { get; set; }
public List<Ean> BarCode { get; set; }
}
List<Article> arts = new List<Article>();
- Je créer une liste de l'article , et avec une requête à l'aide de dapper. Je voudrais remplir cette liste avec le nom de l'article, mais aussi avec une liste d' ean Article. J'ai essayer de faire cette requête:
SELECT ART.ID AS ID, ART.NAME AS NAME,EAN.EAN AS BARCODE
FROM ART,EAN
WHERE ART.ID = EAN.ID_ART;
et en c#..
arts = conn.Query<Article>(query, null, transaction).ToList();
mais ne fonctionnent pas. Comment je peux faire? Merci.. Toute suggestion est la bienvenue.
- Vous ne serez pas en mesure de le faire en une seule fois. Voir stackoverflow.com/questions/7508322/...
- Vous devriez être en utilisant une jointure interne ici, pas une jointure croisée, par le regard de celui-ci.
InformationsquelleAutor puti26 | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à Dapper est Multi-Cartographie fonctionnalité.
Exemple:
Essayez cela, le travail je pense donc
Aussi vous avez besoin de modifier la requête en tant que ci-dessous.
BarCode
.arts = conn.Query<Article,Ean,Ean>(query,(articles, eans) => {articles.Article = articles; return eans;} splitOn: "Code"); ).ToList();
Une autre solution, avec le bénéfice de l'aide d'une seule demande, à seulement deux lignes de code, et la possibilité de chaînage de la jointure (exemple avec trois tables) :
Demande :
Objets du domaine :
Extensions :