我有一个这样定义的类:
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 无法插入,但是......必须有一种方法告诉它“忽略”它,对吧?