Entity Framework 4中删除所有数据行的几种方法

简介:

有朋友问如何删除所有数据行的方法.的确,EF目前没有提供删除所有数据行的方法.所以下面给大家介绍几种方法.

 

方法1:

使用ExecuteStoreCommand方法,代码如下.

using (var db = new msdbEntities())

{

     db.ExecuteStoreCommand("DELETE " + db.students.EntitySet.ElementType.Name);

}

因为xx. EntitySet.ElementType.Name就是对应的数据表名称,所以可以使用delete 拼接数据表名来删除数据.

 

方法2:

在数据实体中添加一个删除所有对象的方法.如下:

    public partial class msdbEntities : 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命令.如下:

public static class Extens

    {

        public static void DeleteAllSql(this ObjectContext ctx, stringsql)

        {

            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 = new msdbEntities())

 {

       db.DeleteAllSql("DELETE Students");

   }

 

 

总结下来,目前没有提供删除所有数据对象的方法,所以一般需要自己添加方法或者添加扩展方法来实现.

 

BTW:今天终于加工资了,虽然.涨幅远远超过CPI,但是丝毫没有什么喜悦,主要是已经对公司工作内容失去了兴趣.所以,工资虽然熬到了一个新阶段,但是还是很淡定.

 

    本文转自风车车  博客园博客,原文链接:http://www.cnblogs.com/xray2005/archive/2011/08/17/2143803.html ,如需转载请自行联系原作者



相关文章
|
XML 存储 数据库连接
Entity Framework学习笔记——edmx文件
上文简单介绍了一下Entity FrameWork,这里说一下EF的核心——edmx文件。 在VisualStudio中建立edmx文件(此例环境为VisualStudio2012)
Entity Framework学习笔记——edmx文件
|
5月前
|
存储 API 数据库
【Entity Framework】创建并配置模型
【Entity Framework】创建并配置模型
30 0
|
5月前
|
存储 SQL BI
【Entity Framework】你知道如何处理无键实体吗
【Entity Framework】你知道如何处理无键实体吗
38 0
|
5月前
|
存储 API 数据库
【Entity Framework】Code First 数据批注
【Entity Framework】Code First 数据批注
44 0
|
5月前
|
存储 SQL 开发框架
【Entity Framework】如何使用EF中的生成值
【Entity Framework】如何使用EF中的生成值
46 0
|
数据库 C#
Entity Framework 简单属性映射
Entity Framework 简单属性映射
1098 0
Entity Framework 简单属性映射
|
数据库
Entity Framework 实体状态
Entity Framework 实体状态
156 0
Entity Framework 实体状态
|
缓存 数据库 数据安全/隐私保护
Entity Framework Core 实现全局查询过滤
Entity Framework Core 实现全局查询过滤
230 0
|
索引
Entity Framework 索引
Entity Framework 索引
234 0
|
数据库 容器
Entity Framework Core(3)-配置DbContext
设计时 DbContext 配置 EF Core 设计时工具如迁移需要能够发现和创建的工作实例DbContext以收集有关应用程序的实体类型以及它们如何映射到数据库架构的详细信息的类型。 此过程可以为自动,只要该工具可以轻松地创建DbContext,会将其配置同样到它如何将配置在运行时的方式。
966 0