我有一个如此定义的类:
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属性的“locations”。
其他一些表“会议”有一个外键回到此表。它超出了我在这个例子中尝试使用的范围,但我认为这会导致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, Culture = neutral,PublicKeyToken = null]] 到已知的托管提供商本机 键入。“}
在我看来,子集合的存在导致PetaPoco无法进行插入,但是......必须有一种方法告诉它“忽略”那个,对吗?
答案 0 :(得分:6)
尝试将其放在Meetings属性上:
[PetaPoco.Ignore]
答案 1 :(得分:0)
如果您在petapoco类上方使用[ExplicitColumns]
属性,则所有不具有[Column]
属性的属性都将被忽略