2011-05-17 11 views
5

He una clase definida de esta manera:petapoco problema inserción

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

} 

Y la tabla de la base de que esto es sólo “lugares” con un ID y una propiedad Name.

Algunas otras "reuniones" de tabla tienen una clave foránea en esta tabla. Y está más allá del alcance de lo que estoy tratando de trabajar en este ejemplo, pero creo que está causando que PetaPoco falle ...

Estoy tratando de usar PetaPoco para insertar una nueva ubicación en la base de datos como esta :

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

Y es tirar un error de este modo:

{ "No existe asignación de tipo de objeto System.Collections.Generic.List`1 [[NHRepoTemplate.sampleUsage.sampleModel.Meeting , NHRepoTemplate, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null]] a un conocido proveedor administrado nativo tipo ".}

Me parece igual que la existencia de la colección de niño causa PetaPoco a no ser capaz de hacer la inserción, pero ... debe haber una forma de decirle que "ignore" eso, ¿verdad?

+0

Agregar el atributo que Jon menciona es correcto. La clase Meeting debería tener una propiedad LocationId que luego puede usar para hacer referencia a esta ubicación – Schotime

Respuesta

6

Trate de poner esto sobre su Reuniones propiedad:

[PetaPoco.Ignore] 
+0

gracias Jon. debería tener eso. –

0

si utiliza [ExplicitColumns] atributo por encima de su clase petapoco, todas las propiedades que no tienen el atributo [Column] será ignorado

Cuestiones relacionadas