Я пытаюсь использовать внешний XML-файл, чтобы отобразить вывод хранимой процедуры в экземпляр класса. Проблема в том, что мой класс имеет общий тип:
public class MyValue<T>
{
public T Value
{
get;
set;
}
}
Просматривая во многих блогах статьи, которые мне удалось получить:
<?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>
Трюк MyNamespace.MyValue`1 работает отлично, и класс распознается. Я ожидаю четыре строки из хранимой процедуры и получаю четыре экземпляра MyValue , но большая проблема заключается в том, что свойство Value для всех четырех экземпляров равно нулю. Собственность не наносится на карту, и я действительно не понимаю, почему. Возможно, стоит отметить, что свойство Value является универсальным и что когда сопоставление выполняется с использованием атрибутов, оно прекрасно работает.
У кого-нибудь есть подсказка?
Кстати, метод GetResourceCategories:
public ISingleResult<MyValue<string>> GetResourceCategories()
{
IExecuteResult result = this.ExecuteMethodCall(
this,
(MethodInfo)MethodInfo.GetCurrentMethod());
return (ISingleResult<MyValue<string>>)result.ReturnValue;
}