无法从 SQL Server CE 中删除记录
Posted
技术标签:
【中文标题】无法从 SQL Server CE 中删除记录【英文标题】:Cant delete record from SQL Server CE 【发布时间】:2013-10-14 08:58:06 【问题描述】:我有一个 ASP.NET MVC 应用程序。我使用 EF 5.0 将数据持久保存在 SQL Server CE 类型的数据库中。我已经安装了 SqlServerCe.Enitity NuGet 包。我可以使用 Linq 和我的模型对象成功处理数据库记录上的创建、读取和更新操作。但是由于某些原因,我无法从数据库中删除任何记录。对象在模型级别被擦除,但更改没有持久保存在数据库中。可能是什么原因造成的?
这是我删除记录的方法:
var files = context.Files.ToList();
files.RemoveAll(x => x.Name == "test");
context.SaveChanges();
这是我的连接字符串:
<add name="DefaultConnection" connectionString="Data Source=C:\SLG PROJECTS\BACKUPS CHECK SYSTEM\Data\aspnet.sdf" providerName="System.Data.SqlServerCe.4.0" />
【问题讨论】:
【参考方案1】:试试这个:
context.Files.Where(x => x.Name == "test").ToList()
.ForEach( f => context.Files.Remove(f));
context.SaveChanges();
RemoveAll 可能未编译为 SQL,也未在 SQL Server 中执行。
【讨论】:
另外,EF6 新增了一个 RemoveRange 方法以上是关于无法从 SQL Server CE 中删除记录的主要内容,如果未能解决你的问题,请参考以下文章
sql server解决无法删除修改拥有外键约束的表或表的记录字段