I want to join 2 tables using entity framework. I want the join to the second table to be on a non-primary key column.
e.g. I have a table Foo with fields
Foo.Id (PK)
Foo.DbValue
and table Bar
Bar.Id (PK)
Bar.DbValue
Bar.Description
And I want to join Foo to Bar in EF on the DbValue field.
In hibernate/nhibernate one can do this by adding a column parameter to a many-to-one. roughly like this
<class name="Foo" table="Foo>
<id name="Id" column="Id" />
<many-to-one name="Bar" class="Bar" column="**DbValue**" />
</class>
Thanks in advance if anyone knows how to do this in EF.
Well you can't do this as a named relationship (i.e. the standard way).
So this means the relationship is NOT part of the model.
However you can still do a standard LINQ join though:
Hope this helps
Check out my EF Tips series.