Entity Framework 4中删除所有数据行的几种方法
来源:互联网 发布:杭州他山网络 编辑:程序博客网 时间:2024/06/05 11:52
有朋友问如何删除所有数据行的方法.的确,EF目前没有提供删除所有数据行的方法.所以下面给大家介绍几种方法.
方法1:
使用ExecuteStoreCommand方法,代码如下.
using (var db =new msdbEntities())
{
db.ExecuteStoreCommand("DELETE " + db.students.EntitySet.ElementType.Name);
}
因为xx. EntitySet.ElementType.Name就是对应的数据表名称,所以可以使用delete拼接数据表名来删除数据.
方法2:
在数据实体中添加一个删除所有对象的方法.如下:
public partial classmsdbEntities : ObjectContext
{
//其他代码
//…..
public void DeleteObjects(IEnumerable entities)
{
foreach (var entity in entities)
{
this.DeleteObject(entity);
}
}
}
使用代码如下:
using (var db =new msdbEntities())
{
db.DeleteObjects(db.students.Where(c => c.Id == c.Id));
db.SaveChanges();
}
方法3:
给数据实体添加一个扩展方法,执行一个删除的SQL命令.如下:
publicstatic class Extens
{
public static void DeleteAllSql(thisObjectContext ctx, string sql)
{
var entityConnection = (System.Data.EntityClient.EntityConnection)ctx.Connection;
DbConnection conn = entityConnection.StoreConnection;
try
{
if (conn.State != ConnectionState.Open)
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
finally
{
if (conn.State != ConnectionState.Open)
conn.Close();
}
}
}
使用方法如下:
using (var db = newmsdbEntities())
{
db.DeleteAllSql("DELETE Students");
}
总结下来,目前没有提供删除所有数据对象的方法,所以一般需要自己添加方法或者添加扩展方法来实现.
- Entity Framework 4中删除所有数据行的几种方法
- Entity Framework 4中删除所有数据行的几种方法
- Entity Framework中数据缓存的问题
- 技巧:删除表中重复数据的几种方法
- NHibernate 中删除数据的几种方法
- 总结NHibernate 中删除数据的几种方法
- db2中删除数据的几种方法
- entity framework 删除多条数据?
- Oracle 删除数据的几种方法
- Oracle 删除数据的几种方法
- Oracle 删除数据的几种方法
- linux下删除文本中所有空行的几种方法
- C#/.NET中删除指定文件夹下所有文件和文件夹的几种方法汇总
- entity framework的数据访问
- Entity FrameWork中常用的数据修改方式
- 删除一个数据库中所有数据的方法
- 删除SQL Server中所有数据的方法
- 删除一个数据库中所有数据的方法
- js中window.createPopup()方法以及attachEvent("onmouseover",OverFuncOne)实例
- PHP套接字编程
- Linux下的计划任务——cron
- C++设计模式之三:Factory Method(工厂方法)
- 关于leap motion的原理和疑点
- Entity Framework 4中删除所有数据行的几种方法
- Android 中弹出对话框 代码
- C语言中scanf函数的详解
- struct 字节对齐问题(不包含struct嵌套的讨论以及修改机器的对齐方式的时候),更详细的请参考收藏
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- 用栈写出Fibonacci的递归和不递归程序
- html操作
- C语言中#include "stdafx.h"详解
- C++中typedef struct与struct的区别