Ich versuche, eine externe XML-Datei zu verwenden, um die Ausgabe von einer gespeicherten Prozedur in einer Instanz einer Klasse abzubilden. Das Problem ist, dass meine Klasse eines generischen Typs ist:LinQ XML-Zuordnung zu einem generischen Typ
public class MyValue<T>
{
public T Value
{
get;
set;
}
}
Suche durch eine Menge von Blogs eine Artikel, die ich habe es geschafft, dies zu erhalten:
<?xml version="1.0" encoding="utf-8" ?>
<Database Name="" xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007">
<Table Name="MyValue" Member="MyNamespace.MyValue`1" >
<Type Name="MyNamespace.MyValue`1">
<Column Name="Category" Member="Value" DbType="VarChar(100)" />
</Type>
</Table>
<Function Method="GetResourceCategories" Name="myprefix_GetResourceCategories" >
<ElementType Name="MyNamespace.MyValue`1"/>
</Function>
</Database>
Die MyNamespace.MyValue`1 Trick funktioniert gut, und die Klasse ist anerkannt. Ich erwarte vier Zeilen von der gespeicherten Prozedur, und ich bekomme vier MyValue <Zeichenfolge> Instanzen, aber das große Problem ist, dass die Eigenschaft Wert für alle vier Instanzen null ist. Die Eigenschaft wird nicht zugeordnet und ich verstehe nicht wirklich warum. Vielleicht ist es wert, darauf hinzuweisen, dass die Eigenschaft Value generisch ist und dass, wenn das Mapping mit Attributen durchgeführt wird, es perfekt funktioniert.
Wer hat eine Ahnung?
BTW die Methode GetResourceCategories:
public ISingleResult<MyValue<string>> GetResourceCategories()
{
IExecuteResult result = this.ExecuteMethodCall(
this,
(MethodInfo)MethodInfo.GetCurrentMethod());
return (ISingleResult<MyValue<string>>)result.ReturnValue;
}
Hallo Michael, danke für deine Antwort. Angenommen, ich experimentiere nur mit dem Konzept der XML-Zuordnung in Linq zu SQL. Ich nehme an, dass das, was ich versuche, möglich ist, weil es durch Attributzuordnung erreicht werden kann, daher muss es eine Möglichkeit geben, dies durch XML-Mapping zu tun. Der Code, der das Mapping durchführt, ist das XML, das ich gepostet habe, da ich meinen Kontext erstelle und das XML als Mapping-Quelle übergebe. Wie auch immer, wenn der Code, der den Kontext erzeugt und die GetResourceCategories-Methode aufruft (eine Methode des Kontexts, die ich vergessen habe zu erwähnen) hilft, das Problem herauszufinden, würde ich mich freuen, ihn zu veröffentlichen. –