2010-10-18 55 views
13

我正在使用EF4与WCF和POCO。 我删除了POCO实体中的所有虚拟关键字。“收集的大小是固定的”EF4中的例外与POCO

我有员工和团队实体,两者之间的关系是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);     
     } 

下面的代码是在服务器端(DAO层)

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删除作业。

+11

你是如何设法解决这个问题? – 2011-02-09 13:33:27

回答

1

您是否试图用生成的代理实体(类)替换ICollectionFixupCollection? 如果您正在使用WCF与实体框架POCOs