2010-02-17 20 views
8

Quiero unir 2 tablas utilizando el marco de entidad. Quiero que la unión a la segunda tabla esté en una columna de clave no primaria.Entity Framework: ¿cómo unir tablas en columnas de clave no primaria en tablas secundarias?

p. Ej. Tengo una tabla con campos Foo

Foo.Id (PK) 
Foo.DbValue 

y mesa de bar

Bar.Id (PK) 
Bar.DbValue 
Bar.Description 

Y yo quiero unir a Foo Bar en la FE en el campo DbValue.

En hibernate/nhibernate se puede hacer esto mediante la adición de un parámetro de columna a uno muchos a uno. más o menos así

<class name="Foo" table="Foo> 
    <id name="Id" column="Id" /> 
    <many-to-one name="Bar" class="Bar" column="**DbValue**" /> 
</class> 

Gracias de antemano si alguien sabe cómo hacer esto en EF.

Respuesta

7

Bueno, no puede hacer esto como una relación con nombre (es decir, la forma estándar).

Esto significa que la relación NO es parte del modelo.

Sin embargo, usted todavía puede hacer un estándar de LINQ se unen sin embargo:

from f in ctx.Foo 
join b in ctx.Bar on f.DbValue equals b.DbValue 
select new {f,b} 

Esperanza esto ayuda

Compruebe hacia fuera mi EF Tips series.

Cuestiones relacionadas