Структура сущности:Присвоить объект собственности другого объекта
Вопрос
У меня есть эти сущности (это всего лишь абстракция, которую я создал для этого поста):
- Язык
- Район
- Описание
Это ссылки между ними:
- Район * - 1 Язык
- Описание * - 1 Язык
- Район 1 - 1 Описание
Если я принесу вот так:
var myFetch = from c in context.Districts
where c.Id = 10
select new { DistrictId = c.Id, Lang = c.Language };
и после этого я пытаюсь присвоить его Описание вот так:
Description desc = Description.CreateDescription(0, "My description");
desc.DistrictReference.EntityKey = new EntityKey("MyEntities.Descriptions", "DistrictId", myFetch.DistrictId);
desc.Language = myFetch.Lang; //throws error
Выданная ошибка является:
Система.Исключение InvalidOperationException: Связь не может быть определена, потому что имя набора объектов 'MyEntities.Описания' недопустимо для роли 'District' в имени набора ассоциаций 'MyEntities.Район_описание'.
Что я делаю не так?
Решение
если myFetch
должны были быть экземпляром класса District
вы могли бы сделать это программно:
desc.DistrictReference.EntityKey = new EntityKey(
String.Format(
"{0}.{1}",
myFetch.EntityKey.EntityContainerName,
myFetch.EntityKey.EntitySetName),
"DistrictId",
myFetch.DistrictId);
Другие советы
Только то, что говорится в сообщении:Вы указали неправильное имя набора объектов.
- Откройте свой EDMX.
- Откройте окно браузера модели.
- Найдите объект District в браузере модели
- Щелкните по нему правой кнопкой мыши, выберите "Свойства".
- Обратите внимание на правильное имя набора объектов
Не связан с StackOverflow