Kann LINQ to SQL nicht mit ColumnAttribute markierte Eigenschaften füllen, wenn DataContext.ExecuteQuery verwendet wird?

8

Gegeben diese Tabelle:

%Vor%

Mit dieser Modellklasse:

%Vor%

Ist es möglich, dass ein DataContext die Eigenschaft ArbitraryText füllt, wenn die Methode ExecuteQuery verwendet wird:

%Vor%

Es scheint, dass der Entity-Mapping-Algorithmus jede Eigenschaft ignoriert, die nicht mit ColumnAttribute markiert ist, aber gibt es eine andere Möglichkeit, dies zu tun?

Ich würde es vorziehen, das Mapping nicht selbst machen zu müssen, aber das sieht nach meiner einzigen Option aus.

Bearbeiten: Es ist ärgerlich, dass die DataContext.ExecuteQuery-Funktion ein POCO -Objekt aus einer Abfrage füllt: %Vor%

Meine aktuelle Lösung besteht also darin, eine innere Klasse für mein LINQ-mapped-Objekt zu haben, die die zusätzlichen Daten enthält, die meine Aggregatabfrage zurückgibt. Dies ist nicht optimal, da einige Eigenschaften dupliziert sind (z. B. Id und Text).

    
Jarrod Dixon 21.04.2009, 07:45
quelle

1 Antwort

2

Nicht so weit ich weiß. Vermutlich könnten Sie ein paar schmutzige Dinge tun, um Daten aus einer UDF zu verheiraten - aber ansonsten wird es in der Lage sein wollen, die Spalten abzubilden.

(wobei die UDF nur den willkürlichen Text und die Kommentar-ID zurückgibt)

%Vor%

Alternativ - Während ich eine wenigen Varianten geschrieben habe auf ExecuteQuery , die nützlich sein könnten, wenn Sie diesen Ansatz für viele verschiedene Dinge verwenden müssen ... Persönlich würde ich wahrscheinlich versuchen, das Problem zuerst zu umgehen.

    
Marc Gravell 21.04.2009, 08:17
quelle

Tags und Links