Laden...

Wie in einem LINQToDataset in der Detail-Ansicht Master-Attribute anzeigen und editierbar halten?

Erstellt von atrus2711 vor 3 Jahren Letzter Beitrag vor 3 Jahren 767 Views
A
atrus2711 Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren
Wie in einem LINQToDataset in der Detail-Ansicht Master-Attribute anzeigen und editierbar halten?

Hallo zusammen,

auch wenn Datasets nicht mehr so angesagt sind, nutze ich derzeit eins. Es sind folgende DataTables im Spiel:

  • Domains (=Namen von Entitäten)
  • DomainElements (= Ausprägungen von Entitäten)
  • TreeNodes (eine Hierarchie)
  • TreeDetails (das ist die "Auflösetabelle" für m:n)

Beziehungen:
Domains 1:n DomainElements
DomainElements 1:n TreeDetails
TreeNodes 1:n TreeDetails

Sinn ist, zu einem gewählten TreeNodes-Datensatz die Details anzuzeigen und auch editieren zu können (siehe Bild). Die Details eines TreeNodes-Satzes sollen dabei die "Klartexte" anzeigen, damit man sich nicht mit Fremdschlüsselwerten befassen muss. Ich sehe also zu jedem gewählten TreeNodes-Satz dessen Details mit Bedeutung der Domain und des DomainElements.

Mein Problem:
für den Lookup der Domaintexte eines gewählten TreeNodes-Satzes nutze ich via LINQ die Relation aus:

var qry = from Detail in dst.Details
              where Detail.F_TreeNode_ID == intTreeNodeID
              select new {
                     Detail.F_TreeNode_ID,
                     Detail.F_Domain_ID,
                     Detail.DomainRowParent.DomainCaption
              };

Diese LINQ funktioniert, aber das Ergebnis ist nicht editierbar, vermutlich wegen des anonymen Typs. Das wird aber auch nicht besser, wenn ich den durch eine Testklasse ersetze.

Auch ein LINQ, der die Relation nachbaut (per join oder where) ist nicht editierbar.

Wie also kriege ich das hin, die TreeNodes "mit Klartext" zu sehen und editieren zu können?

Dankbar für jeden Rat
Martin

16.834 Beiträge seit 2008
vor 3 Jahren

Im Endeffekt identischer Grund wie im Thema Linq Join und anschließender SaveChanges

Editierbar ist etwas nur, wenn die Projektion dem 1:1 Mapping entspricht; also die rohen Entitäten geladen werden.

A
atrus2711 Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren

Hallo,

wenn ich nur die Fremdschlüssel anzeige und eingebe, klappt ja alles. Aber die Bedeutung wäre halt auch ganz schön.

Ein Weg wäre, die Klartexte über DataColumns mit Expression der Art Parent(RelationName).CaptionDE auszulesen. Das funktioniert, aber das Laden wird dadurch stark verlangsamt.