Pregunta

Es su manera usando Entity Framework Código de sólo tener una entidad que tiene campos de dos tablas, si ambas tablas no contienen la clave principal?

Este es un ejemplo.

public class BlogPost
{
    public int PostID { get; set; }
    public String PostBody { get; set; }
    public int UserID { get; set; }
    public string Username { get; set; }
}

public class User
{
    public int UserID { get; set; }
    public String Username { get; set; }
}

public class BlogPostConfiguration : EntityConfiguration<BlogPost>
{
    public BlogPostConfiguration()
    {
        HasKey(b => b.PostID);
    }
}

public class UserConfiguration : EntityConfiguration<User>
{
    public UserConfiguration()
    {
        HasKey(b => b.UserID);
    }
}

Quiero la propiedad nombre de usuario del objeto BlogPost que se asigna a la columna de nombre de usuario de la tabla de usuario. Puedo hacer el mapeo utilizando una clave externa mediante el diseñador, pero no estoy seguro de cómo hacer que el uso de código sólo. He intentado utilizar dos declaraciones MapHierarchy en mi objeto de configuración, pero parece que sólo funciona si ambas tablas nosotros la misma clave primaria.

¿Fue útil?

Solución

No creo que esto es posible con el estado actual del marco de la entidad.

Con el fin de hacer la división entidad que tiene que tener un mapeo 1-a-1 (la clave principal debe ser en ambas tablas).

Yo era incorrecta con mi quest al suponer que porque se puede añadir columnas a partir de una segunda tabla en el diseñador que el código funcione de verdad. Me sale un error muy similar cuando se trata de hacer el mapeo en el EDMX como yo cuando se utiliza sólo código.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top