проблема вставки petapoco - PullRequest
5 голосов
/ 18 мая 2011

У меня есть класс, определенный так:

public class Location
{
    public Location()
    {
        Meetings = new List<Meeting>();
    }

    public virtual int ID { get; private set; }
    public virtual string Name { get; set; }

    public virtual ICollection<Meeting> Meetings { get; set; }

}

И таблица базы данных для этого - просто «местоположения» с идентификатором и свойством Name.

Некоторые другие таблицы «встреч» имеют внешний ключ к этой таблице. И это выходит за рамки того, с чем я пытаюсь работать в этом примере, но я думаю, что это вызывает сбой PetaPoco…

Я пытаюсь использовать PetaPoco для вставки нового местоположения в базу данных, например:

    public int AddLocation(string name)
    {
        var newLocation = new Location{Name = name};
        var db = new PetaPoco.Database(_connectionString);
        db.Insert("locations", "ID", newLocation);
        return newLocation.ID;
    }

И выдает ошибку вот так:

{"Нет сопоставления для типа объекта System.Collections.Generic.List`1 [[NHRepoTemplate.sampleUsage.sampleModel.Meeting, NHRepoTemplate, версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = ноль]] известному управляемому провайдеру типа. "}

Мне кажется, что существование дочерней коллекции приводит к тому, что PetaPoco не может выполнить вставку, но ... должен быть способ заставить ее "игнорировать" это, верно?

Ответы [ 2 ]

6 голосов
/ 19 мая 2011

Попробуйте указать это в свой собственности Meetings:

[PetaPoco.Ignore]
0 голосов
/ 13 августа 2013

если вы используете атрибут [ExplicitColumns] над классом petapoco, все свойства, не имеющие атрибута [Column], будут игнорироваться

...