2010-02-23 1 views
0

Я работаю над приложением C# .NET 3.5 WCF RIA Services и имею проблему с моей моделью Entity Framework.Как узнать, какое имя использует RIA Services/EF для ассоциаций?

Мое сущность Foo отображается в таблицу БД и имеет первичный ключ FooId. Моя панель сопоставляется с представлением БД. Я выборочно разработал это представление, чтобы сгенерировать составной ключ в EF, используя два столбца (убедившись, что они не имеют значения NULL, а остальные - с нулевым значением. Это было сделано с использованием NULLIF и ISNULL в дизайне представления.)

Я могу добавить это представление к модели без проблем, но я все время сталкиваюсь с проблемой, когда пытаюсь сопоставить связь между ними. Foo должна содержать много Bars, но я получаю следующее сообщение об ошибке, когда я добавить ассоциацию:

Невозможно получить AssociationType для ассоциации «FK_Bar_Foo»

По this page, похоже, это может работать если я могу правильно назвать ассоциацию (так как RIA Services ищет определенные имена.) Я пробовал несколько вариантов имен, которые соответствуют шаблону других ассоциаций без успеха. Кто-нибудь знает, есть ли место, где я могу посмотреть, какое имя он ищет?

Спасибо,

ответ

0

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

Решение, с которым я, наконец, пошел, заключалось в том, чтобы переконфигурировать клиента для самостоятельного вызова службы и запроса коллекции сущностей путем передачи первичного ключа (FooId) моего типа Foo. Это не лучший подход (и требует гораздо более ручного кодирования), но он выполняет эту работу. Надеюсь, что Entity Framework версии 4 решит это ограничение.