DataSet auswählen übergeordneter Zeilen, in denen die untergeordneten Zeilen enthält den Wert x

Habe ich zwei DataTables im DataSet miteinander durch ein DataRelation und ich bin versucht zu wählen, alle übergeordneten Zeilen mit einem Kind Zeile mit Wert x.

Der übergeordneten Tabelle enthält Produkte und die child-Tabelle enthält die Kategorien, die das Produkt in.

DataSet dsProducts = new DataSet();

DataTable dtProducts = new DataTable("products");
dtProducts.Columns.Add("entity_id", typeof(int));
dtProducts.Columns.Add("sku", typeof(string));
dtProducts.Columns.Add("mpn", typeof(string));
dtProducts.Columns.Add("brand", typeof(string));
dtProducts.Columns.Add("name", typeof(string));
dtProducts.Columns.Add("description", typeof(string));
dtProducts.Columns.Add("short_description", typeof(string));
dtProducts.Columns.Add("image", typeof(string));
dtProducts.Columns.Add("weight", typeof(double));
dtProducts.Columns.Add("qty", typeof(double));
dtProducts.Columns.Add("cost", typeof(double));
dtProducts.Columns.Add("price", typeof(double));
dtProducts.PrimaryKey = new DataColumn[] { dtProducts.Columns["entity_id"] };
dsProducts.Tables.Add(dtProducts);

DataTable dtCategories = new DataTable("categories");
dtCategories.Columns.Add("entity_id", typeof(int));
dtCategories.Columns.Add("category_id", typeof(int));
dsProducts.Tables.Add(dtCategories);

dsProducts.Relations.Add(new DataRelation("entity_id", dtProducts.Columns["entity_id"], dtCategories.Columns["entity_id"]));

BEARBEITEN

Habe ich zusammengebastelt dieses Stück von Linq-code, welcher funktioniert, aber scheint sinnlos, mit einem DataRelation

var rows = from prods in dsProducts.Tables["products"].AsEnumerable()
            join cats in dsProducts.Tables["categories"].AsEnumerable() on prods.Field<int>("entity_id") equals cats.Field<int>("entity_id")
            where cats.Field<int>("category_id") == id
            select prods;
  • Fühlen Sie sich frei, um Ihre eigene Frage zu beantworten, wenn Ihre Antwort für Sie arbeitet.
  • es funktioniert, aber es scheint ein bisschen dumm zu haben, wieder eine Beziehung, wenn es schon eine Beziehung gibt.
InformationsquelleAutor Christian | 2012-01-16
Schreibe einen Kommentar