2011-05-17 19 views
5

Bir sınıf şöyle tanımlamış:petapoco insert sorunu

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

} 

Ve bunun için veritabanı tablosu bir kimlik ve bir ismi özelliğiyle sadece “yerler” dir.

Diğer bazı toplantı “toplantıları” bu tablonun geri bir dış anahtarına sahiptir. Ve bu örnekte çalışmayı denediğim şeyin kapsamı dışındadır, ancak PetaPoco'nun başarısız olmasına neden olduğunu düşünüyorum…

Veritabanına yeni bir konum eklemek için PetaPoco kullanmaya çalışıyorum. :

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

Ve gibi bir hata atıyor böylece:

{ "Hayır haritalama nesne türü System.Collections.Generic.List`1 [[NHRepoTemplate.sampleUsage.sampleModel.Meeting gelen var , NHRepoTemplate, Sürüm = 1.0.0.0, nötr Kültür =, PublicKeyToken = null]], bilinen bir yönetilen sağlayıcı yerel tip. "} Için

O PetaPoco ekleme yapmak mümkün olmayacaktır neden çocuk koleksiyonu varlığı gibi geliyor bana, ama ... bunu "görmezden" demenin bir yolu olmalı, doğru mu?

+0

dikkate alınmayacaktır yok doğru. Toplantı sınıfının daha sonra bu konuma geri başvurmak için kullanabileceğiniz bir LocationId özelliği olmalıdır – Schotime

cevap

6

senin Toplantılar mülkiyet üzerinden bu koyarak deneyin: Eğer petapoco sınıfının üstünde [ExplicitColumns] özelliğini kullanırsanız

[PetaPoco.Ignore] 
+0

teşekkürler Jon. buna sahip olmalı. –

0

, tüm özellikler bu [Column] nitelik Jon söz özelliğin eklenmesi