2010-10-18 56 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