PetaPoco, в частности schotime, «не существует сопоставления с известным типом провайдера» - PullRequest
1 голос
/ 03 марта 2012

Я использую довольно старую версию PetaPoco из https://github.com/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.

для каждого параметра, который я пытаюсь передать (в данном случае System.Int32, System.Int32).

Что-то изменилось в способе передачи параметров через этот метод? Очень запутался в ошибке.

1 Ответ

1 голос
/ 07 марта 2012

Это было исправлено в 4.0.3.12, доступное для загрузки здесь: https://github.com/schotime/PetaPoco/downloads

...