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]] 到已知托管提供程序的映射类型。”}

在我看来,子集合的存在导致 PetaPoco 无法插入,但是......必须有一种方法告诉它“忽略”它,对吧?

4

2 回答 2

6

试着把它放在你的会议财产上:

[PetaPoco.Ignore]
于 2011-05-19T15:05:22.083 回答
0

如果您[ExplicitColumns]在 petapoco 类上方使用属性,则所有不具有该[Column]属性的属性都将被忽略

于 2013-08-13T09:05:01.033 回答