"收集具有固定的大小"EF4与POCO的例外情况

Ray*_*Ray 13 c# wcf entity-framework-4

我正在使用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);                
        }
Run Code Online (Sandbox Code Playgroud)

以下代码在服务器端(Dao层)

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

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

问题是当我将teamFromDb实例添加到客户端代码中的newEmp.Team属性时,我收到了"Collection is a fixed size"异常.

我是否需要添加更多代码才能修复?

此外,对于POCO类和WCF的插入/更新/删除作业,我需要什么

提前致谢.

小智 1

您是否尝试替换ICollectionFixupCollection生成的代理实体(类)?如果您使用WCF实体框架,这可能会有所帮助POCOs