2011-05-17 241 views
5

我已經定義,像這樣一類:petapoco插入問題

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和一個名稱屬性。

某些其他表「會議」有一個外鍵返回到此表。這是超出了我試圖在這個例子中工作的範圍,但我認爲這是導致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, 文化=中立,公鑰=空] 到已知的託管提供本地 型「}。

在我看來,像孩子收集引起PetaPoco不能夠做插件的存在,但是......必須有辦法讓它「忽略」,對吧?

+0

添加喬恩提到的屬性是正確的。然後,會議類應該有一個LocationId屬性,您可以使用它返回到此位置 – Schotime 2011-05-19 23:00:46

回答

6

嘗試把這個在您的會議性質:

[PetaPoco.Ignore] 
+0

感謝Jon。應該有sen的那個。 – 2011-05-23 10:48:23

0

如果您使用petapoco類以上[ExplicitColumns]屬性,所有屬性不具備[Column]屬性將被忽略