ADO.NET Entity: получение данных из 3 таблиц - PullRequest
3 голосов
/ 10 декабря 2008

У меня следующая структура таблицы:

Table: Plant
 PlantID: Primary Key
 PlantName: String

Table: Party
 PartyID: Primary Key
 PartyName: String
 PlantID: link to Plant table

Table: Customer
 PartyID: Primary Key, link to Party
 CustomerCode: String 

Я хотел бы иметь объект сущности Customer со следующими полями:

 PartyID: Primary Key
 CustomerCode: String
 PartyName: String
 PlantName: String

У меня проблема с полем PlantName (которое занято из таблицы Plant Я связал Заказчика с Партией и Партией с Заводом с ассоциациями Однако я не могу подключить Заказчика к Заводу с ассоциацией (потому что у него его нет) Я не могу добавить таблицу растений в отображение, когда я это делаю - я получаю следующую ошибку:

Error 3024: Problem in Mapping Fragment starting at line 352: Must specify mapping for all key properties (CustomerSet.PartyID) of the EntitySet CustomerSet

Снятие комбината заводских работ. Любые советы или указания очень приветствуются.

Ответы [ 3 ]

3 голосов
/ 10 декабря 2008

Вы можете получить эти поля, используя путь ссылки на объекте сущности.

Чтобы получить PartyName, используйте следующий синтаксис: Customer.Party.PartyName

Чтобы получить PlantName, используйте следующий синтаксис: Customer.Party.Plant.PlantName

2 голосов
/ 07 апреля 2009

Вы можете расширить сущность Customer, используя публичный частичный класс:

public partial class Customer
{
  public string PartyName
  {
    get { return Party.PartyName; }
    set { Party.PartyName = value; }
  }

  public string PlantName
  {
    get { return Party.Plant.PlantName; }
    set { Party.Plant.PlantName = value; }
  }
}
1 голос
/ 07 апреля 2009

После некоторого исследования я наткнулся на этот поток в MSDN, в котором говорится, что вы можете создать объект только для чтения, что является недостатком, чтобы не использовать его в одиночку, но он ухудшается. Вы также потеряете возможность динамического обновления всех моделей на основе схемы базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...