2011-02-17 19 views
6

Usando EF CTP5, estoy tratando de hacer alguna división de entidad donde la entidad se construye a partir de dos tablas separadas. ¿Es posible hacer esta división si la clave de las dos tablas no es la clave principal?Entity Framework CTP5 Code First - ¿Es posible dividir entidades en una clave no primaria?

E.g. Id es mi clave principal en la entidad Note. Quiero obtener mis datos de CreatedUser de una tabla separada, pero la clave principal en esta segunda tabla corresponde a CreatedUserId en la entidad Note.

 modelBuilder.Entity<Note>() 
      .Map(mc => 
      { 
       mc.Properties(n => new 
       { 
        n.Id, 
        n.Title, 
        n.Detail, 
        n.CreatedUserId, 
        n.CreatedDateTime, 
        n.UpdatedUserId, 
        n.UpdatedDateTime, 
        n.Deleted, 
        n.SourceSystemId, 
        n.SourceSubSystemId 
       }); 
       mc.ToTable("Notes"); 
      }) 
      .Map(mc => 
      { 
       mc.Properties(n => new 
       { 
        n.CreatedUserId, 
        n.CreatedUser 
       }); 
       mc.ToTable("vwUsers"); 
      }); 

He visto comentarios de que la división de entidad solo es posible si la entidad clave primaria existe en ambas tablas?

Gracias de antemano.

Respuesta

2

Sí, todas las tablas que se generan en un escenario de división de entidad deben tener el identificador de objeto (por ejemplo, Note.Id) como clave principal. En este caso, debería considerar crear una asociación 1: * entre las entidades de Usuario y Nota.

+0

Gracias por confirmar este Morteza y la respuesta rápida. ¡Pasaré a implementar el 1. * mañana! – Col

Cuestiones relacionadas