我正在使用带有WCF和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属性时,我收到了“Collection is a fixed size”异常。
我是否需要添加更多代码才能修复?
此外,使用POCO类和WCF插入/更新/删除作业需要什么
提前致谢。
答案 0 :(得分:1)
您是否尝试将ICollection
替换为FixupCollection
以生成代理实体(类)?
如果您将WCF
与实体框架POCOs
答案 1 :(得分:0)
有关此问题的详细信息,请参阅此问题:
答案 2 :(得分:0)
这是一个非常古老的问题。但是我今天遇到了。只是想分享一下我解决了什么问题。
对我来说,原因是我有这样的事情
Company company = _dbContext.Company.First()
company.Employees = company.Employees.Where(e => e.age > 30);
第二行搞乱了我的上下文,因为公司和员工有 FK 限制。
要修复,只需简单地使用局部变量
var tmpList = company.Employees.Where(e => e.age > 30);