所以我有以下代码:
// Get the current user
_currentUser = WindowsIdentity.GetCurrent();
// Get the list of address for the current user
_dataMap = new DataMapDataContext();
_addresses = _dataMap.Addresses
.Where(address => address.InsertUserName == _currentUser.Name).ToList();
Run Code Online (Sandbox Code Playgroud)
....
_addresses.Add(form.Item);
_dataMap.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
当我调用SubmitChanges时,数据库中没有保存任何内容.这是为什么?我错过了这一点吗?我认为使用linq to sql你只需要在你的查询结果中添加项目,然后调用SubmitChanges就可以了....显然我错过了一些东西.
如果您使用"ToList",它现在有效吗?如果没有,那么如何将东西插入集合中?(我不认为Add是IQueryable的一部分.)
不要用 _addresses.Add
您无法直接添加到IQueryable,您需要将其添加到实体集.
试试这个:
_dataMap.Addresses.InsertOnSubmit(form.Item);
_dataMap.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
当然,我无法看到什么形式.Item是,但要注意它需要与_dataMap.Addresses实体集具有相同的实体类型.
如果使用.ToList(),则没有区别.
使用LINQ-SQL(除非您使用某种POCO映射),您无法将项添加到集合/查询中,您需要将项直接添加到指定数据上下文的实体集中.
您可以根据需要多次调用.InsertOnSubmit,并且.SubmitChanges会将所有这些INSERT推送到DB.
有关InsertOnSubmit的 更多信息,请点击此处.
| 归档时间: |
|
| 查看次数: |
1248 次 |
| 最近记录: |