好的,我正在做的是(我认为)相当简单。不能从WPF Datagrid通过LINQ到SQL插入新记录
我有一个LINQ到SQL数据上下文设置,其中一个表是用户。在设计器中,它将该类显示为“用户”,源为“dbo.Users”。它的访问权限是Public,我可以访问数据库来检索和更新。该类设置为“使用运行系统”用于I/D/U操作。
问题出现在我尝试添加新记录时。
- 我有数据网格设置为的AutoGenerateColumns =“真”
- CanUserAddRows被设置为“真”
- RowEditEnding事件设置为一个方法。
当我在数据上下文中添加记录(SubmitChanges())时,没有任何反应。它根本不会插入。我已经在断点处检查了局部对象,并且所有迹象表明它确实存在,它确实有它应该添加的正确记录。
但是等等,还有更多。
如果我执行Users.InsertOnSubmit()并传递数据网格的CurrentItem(铸造给用户),它给了我一个错误,说“无法添加已存在的实体”,但我发现该记录实际上已被插入。
有没有人有线索?
(FWIW,后端是SQL2K8快递)
编辑:
给出也不例外,但不添加记录的代码之一:
private void UserGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
ctx.SubmitChanges();
}
,并且给出了一个异常的代码:
private void UserGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
ctx.Users.InsertOnSubmit((User) e.Row.Item);
ctx.SubmitChanges();
}
您是否能够显示与“不工作”行为相关的任何代码以及引发“实体已存在”错误的代码? – 2009-07-23 16:21:07