EF модель из 2 таблиц, связанных с соединительной таблицей - Модель не видит записей и изменений в соединительной таблице - PullRequest
0 голосов
/ 12 февраля 2010

В моей базе данных SQL2008 есть несколько таблиц, среди которых Менеджеры (ManagerID - это PK, инкрементный) и Customers (CustomerID - это PK, инкрементный). Все столбцы ID являются целыми. Они связаны с соединительной таблицей ManagersCustomers (поля: CustomerID - это PK, ManagerID), и существуют взаимосвязи: от CustomerID в Customers до идентичного в соединительной таблице с правилом удаления каскада и от ManagerID в Managers к тому же в соединительной таблице с каскадом удаления тоже. Итак, у меня есть отношение Менеджеров от 0..1 до * клиентов в моей модели edmx после генерации его из моей БД, и я вижу, что это отношение сопоставлено с таблицей соединений. Я тестировал соединительную таблицу в SQL Server Management Studio, она работает правильно. Хорошо. В моем приложении у меня есть 2 части - модель edmx на стороне сервера, связанная со стороной клиента через Службу данных WCF. В клиентской части я создаю экземпляр своего класса сущностей, а в режиме отладки я могу наблюдать за данными экземпляра класса сущностей. И клиенты, и менеджеры заполнены данными правильно, но в полях навигации я вижу только 0. Например, у меня есть Клиент с CustomerID = 1, связанный с Manager с ManagerID = 3, и в таблице соединений есть запись. Таким образом, если бы он работал правильно, я бы увидел своего менеджера в поле навигации сущности «Клиенты» и то же самое с полем навигации клиента в сущности «Менеджеры». Но я вижу только нули.

1 Ответ

0 голосов
/ 12 февраля 2010

Самое простое - изменить таблицу ManagersCustomers так, чтобы оба столбца были частью PK, а затем воссоздать вашу модель. Дизайнер графического интерфейса не воспримет это как ассоциацию «многие ко многим», если вы этого не сделаете.

...