5

次のように定義されたクラスがあります。

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; }

}

このためのデータベース テーブルは、ID と 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, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] から既知のマネージド プロバイダー ネイティブへのマッピングは存在しませんタイプ。"}

子コレクションの存在が原因でペタポコが挿入できなくなっているように思えますが、それを「無視」するように伝える方法があるはずですよね?

4

2 に答える 2

6

これをMeetingsプロパティに重ねてみてください。

[PetaPoco.Ignore]
于 2011-05-19T15:05:22.083 に答える