Entity Framework, службы данных ado.net, odata - PullRequest
2 голосов
/ 22 февраля 2012

Я очень новичок в Entity Framework, это мой отказ от ответственности! У меня есть база данных SQL 2008 с 2 таблицами, tblModel и tblHairColor. tblModel содержит столбец с именем hairID, который является внешним ключом первичного ключа id таблицы tblHairColor.

Я создал модель данных сущности ado.net и теперь, следуя http://msdn.microsoft.com/en-us/library/dd728283.aspx,, пытаюсь получить доступ к моим созданным ресурсам данных.

Мой URL-адрес http://localhost:51157/WcfDataService.svc/tblModels(1)/modelname/$value прекрасно работает, возвращая имя модели (записи 1) из таблицы tblModels. Однако, когда я пытаюсь получить доступ к цвету волос через http://localhost:51157/WcfDataService.svc/tblModels(1)/modelname/tblHairColor, он не работает (http 404 не найден).

Моя модель сущностей, сгенерированная из моей базы данных SQL, создала свойство навигации tblModels в tblHairColor и свойство навигации tblHairColor в tblModel. Он также автоматически генерирует ассоциацию tblHairColor с tblModel (от 1 до *). Я ожидал от 1 до 1.

У меня вопрос: что нужно добавить / изменить, чтобы этот запрос позволил http://localhost:51157/WcfDataService.svc/tblModels(1)/modelname/tblHairColor, вернуть цвет волос модели?

Заранее спасибо за ваше время. Боб

1 Ответ

1 голос
/ 22 февраля 2012

имя модели не должно использоваться в URL, только навигационное свойство:

http://localhost:51157/WcfDataService.svc/tblModels(1)/tblHairColor

Если вы хотите модель и цвет волос, вы должны использовать $ expand:

http://localhost:51157/WcfDataService.svc/tblModels(1)?$expand=tblHairColor
...