Я использую довольно старую версию PetaPoco от https://github.com/schotime/PetaPoco - это в основном ваниль с поддержкой столбцов с несколькими первичными ключами. Решил, что пришло время обновиться. Захваченный последнюю версию по ссылке schotime только что упомянул, сбрасывали его в мой проект, и сразу же были неудачи с кодом структурированы следующим образом:PetaPoco, в частности schotime, «нет сопоставления известному типу поставщика»
class Program
{
public class AggregateObject
{
public int aoId { get; set; }
[PetaPoco.Ignore]
public Object1 o1 { get; set; }
[PetaPoco.Ignore]
public Object2 o2 { get; set; }
}
public class Object1
{
public int o1Id { get; set; }
}
public class Object2
{
public int o2Id { get; set; }
}
static void Main(string[] args)
{
var db = new Database("test");
var test = db.Fetch<AggregateObject, Object1, Object2, AggregateObject>(
(ao, o1, o2) =>
{
ao.o1 = o1;
ao.o2 = o2;
return ao;
},
"SELECT 1 AS aoId, 2 AS o1Id, 3 AS o2Id WHERE 1 <> @start AND 2 <> @end",
new
{
start = 5,
end = 5
});
}
}
Что выдает эту ошибку
No mapping exists from object type <>f__AnonymousType0`2[[System.Int32, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],
System.Data.SqlClient.SqlParameter, System.Data, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089]] to a known managed provider native type.
для каждого параметра I» m, пытающихся пройти (в этом случае System.Int32, System.Int32).
Что-то изменилось в том, как параметры передаются с помощью этого метода? Очень смущен ошибкой.
Ничто не имеет изменения в этих методах. Похоже, вы называете это неправильно. Не могли бы вы привести пример, который действительно компилируется? – Schotime
Думал, что один, извините. Я включил лучший пример, который будет генерировать проблему без фактического попадания в любые таблицы. Этот код работает с версией PetaPoco в Nuget и возвращает результат; с последней версией, которую я захватил со страницы вашего сайта PetaPoco github, это ошибки с исключением, которое я дал выше. – heyseuss