2010-02-17 1 views
8

Ich möchte 2 Tabellen mit Entity Framework verbinden. Ich möchte, dass die Verbindung zur zweiten Tabelle in einer Nicht-Primärschlüsselspalte ist.Entity Framework - Wie verknüpfe ich Tabellen in Nicht-Primärschlüsselspalten in Sekundärtabellen?

z.B. Ich habe eine Tabelle Foo mit Feldern

Foo.Id (PK) 
Foo.DbValue 

und Tisch Bar

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

Und ich will Foo beitreten in EF auf dem DbValue Feld nach Bar.

In Hibernate/Nhibernate kann man dies tun, indem man einen Spaltenparameter zu einem Viele-zu-Eins hinzufügt. ungefähr so ​​

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

Vielen Dank im Voraus, wenn jemand weiß, wie man das in EF macht.

Antwort

7

Nun, Sie können dies nicht als eine benannte Beziehung (d. H. Der Standard Weg) tun.

Das bedeutet also, dass die Beziehung NICHT Teil des Modells ist.

Sie können jedoch immer noch ein Standard-LINQ beitreten tun aber:

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

Hope this

Check hilft heraus meine EF Tips series.

Verwandte Themen