我正在将 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);
        }

以下代码在服务端(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 属性时,我得到了“Collection was a fixed size”异常。

我需要添加更多代码来修复吗?

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

提前致谢。

最佳答案

您是否尝试将 ICollection 替换为 FixupCollection 以生成代理实体(类)?
如果您将 WCF 与 Entity Framework POCOs 一起使用,这可能会有所帮助

关于c# - "Collection was of a fixed size"EF4 与 POCO 中的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3957136/

10-13 06:54