EF Code Fist наследование с RIA Services и Silverlight - PullRequest
0 голосов
/ 19 ноября 2011

Я играю с EF и RIA Services для предстоящего проекта. Для этого проекта мне нужно наследование, чтобы можно было абстрагироваться от конкретных реализаций типов. Допустим, у нас есть абстрактный класс CustomerBase . Клиентам в США требуются другие данные, чем клиентам в Великобритании, поэтому мы можем внедрить Customer : CustomerBase для Великобритании и США в разных модулях. Другие модули не должны зависеть от конкретной реализации, потому что CustomerBase уже охватывает большую часть земли.

Я создал такой сценарий, и мои таблицы созданы идеально, и служба RIA копирует их в клиент Silverlight (v5). Но в проекте Silverlight такое утверждение ...

CustomerBase customer = new Customer() { /* ... */ };

... недопустимо, потому что служба RIA позволяет всем своим сущностям извлекать из Entity ( CustomerBase является общим для основного модуля, поэтому каждый может получить к нему доступ).

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

1 Ответ

0 голосов
/ 20 ноября 2011

После множества чтений и обсуждений в ##csharp@freenode.net, я думаю, что лучший способ решить эту проблему - создать реализацию CustomerBase на Silverlight-Client, которая объединяет сущность Customer, созданную службами RIA. Там я переопределяю все свойства и позволяю им получить доступ к полям Entitiy и реализую INotifyPropertyChanged на лету.

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