Entity Framework - Как мне объединить таблицы в столбцах не первичного ключа во вторичных таблицах? - PullRequest
8 голосов
/ 17 февраля 2010

Я хочу объединить 2 таблицы, используя структуру сущностей. Я хочу, чтобы соединение со второй таблицей находилось в столбце без первичного ключа.

например. У меня есть таблица Foo с полями

Foo.Id (PK)
Foo.DbValue

и стол Бар

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

И я хочу присоединиться к Foo to Bar в EF в поле DbValue.

В hibernate / nhibernate это можно сделать, добавив параметр столбца ко многим к одному. примерно так

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

Заранее спасибо, если кто-нибудь знает, как это сделать в EF.

1 Ответ

7 голосов
/ 18 февраля 2010

Ну, вы не можете сделать это как именованные отношения (то есть стандартным способом).

Таким образом, это означает, что отношения НЕ являются частью модели.

Однако вы все равно можете выполнить стандартное соединение LINQ:

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

Надеюсь, это поможет

Посмотрите мою серию EF Tips.

...