Linq to SQL наследование и таблица на класс - подход, необходимый для нескольких ролей - PullRequest
1 голос
/ 28 апреля 2010

Я использую L2S и модель наследования для сопоставления лиц с определенными ролями.

Отличное сообщение в блоге Гая Бурштейна объясняет, как этого добиться:

http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/01/linq-to-sql-inheritance.aspx

Однако у меня есть конкретный случай, когда у Человека несколько ролей. Например, «Джейн Доу» - это контакт и программист. В этой модели ей потребовалось бы две строки в таблице People, одну как Contact (PersonType = 1) и одну как Programmer (PersonType = 3).

Если она изменит свою фамилию, и это обновление произойдет в ее роли в качестве Контакта, мне нужно будет изменить все экземпляры «Джейн Доу», чтобы повсеместно отражать изменение имени.

Какой наилучший подход (улучшенная структура данных) можно использовать для изменения фамилии в всех ролях? Наконец, я надеюсь избежать переопределения каждого общего события обновления формы, чтобы включить все экземпляры, но это может быть единственным способом. Любые предложения или подходы приветствуются.

1 Ответ

1 голос
/ 10 мая 2010

Из того, что я могу судить по предоставленной вами информации, ваша база данных должна иметь три таблицы:

  1. Люди
  2. Программисты
  3. Контакты

Программисты и контакты должны иметь внешний ключ Person_fK.

В объектной модели Programmer и Contact каждый будет иметь свойство Person.

...