Исключение "Коллекция была фиксированного размера" в EF4 с POCO - PullRequest
13 голосов
/ 18 октября 2010

Я использую EF4 с WCF и POCO.Я удалил все виртуальные ключевые слова в сущностях POCO.

У меня есть сущности Employee и Team, и отношение между ними равно 1: N, это означает, что одному сотруднику может быть назначена только одна команда.Я хотел бы добавить нового сотрудника с существующей командой.Следующий код находится на стороне клиента.

private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            Team teamFromDb = ServiceProxy.GetService.GetTeamById(181);
            Employee newEmp = new Employee{ UserName="username"};
            newEmp.Team = teamFromDb;
            ServiceProxy.GetService.AddEmployee(newEmp);                
        }

Следующий код находится на стороне сервера (слой Дао)

public void AddEmployee(Employee emp)
        {
            ctx.Employees.AddObject(emp);
        }

        public Team GetTeamById(int teamId)
        {
            return ctx.Teams.Where(t => t.TeamId == teamId).FirstOrDefault();
        }

Проблема в том, что я получил "Коллекция была фиксированного размера"Исключение при добавлении экземпляра teamFromDb в свойство newEmp.Team в коде клиента.

Нужно ли добавить еще код для исправления?

Кроме того, что нужно для задания вставки / обновления / удаления с классами POCO и WCF

Спасибозаранее.

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Вы пытались заменить ICollection на FixupCollection для сгенерированных прокси-объектов (классов)? Это может помочь, если вы используете WCF со структурой сущности POCOs

0 голосов
/ 07 июля 2011

См. Этот вопрос для получения дополнительной информации об этой проблеме с шаблоном:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/71c04d6a-c8cf-4ef1-be7f-249bf8dc9c63/

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