Entity Framework 4中删除所有数据行的几种方法(3)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Entity Framework 4中删除所有数据行的几种方法(3)

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

 2013/8/14 19:19:08  蒋叶湖  博客园  我要评论(0)
  • 摘要:方法1:使用ExecuteStoreCommand方法,代码如下.using(vardb=newmsdbEntities()){db.ExecuteStoreCommand("DELETE"+db.students.EntitySet.ElementType.Name);}因为xx.EntitySet.ElementType.Name就是对应的数据表名称,所以可以使用delete拼接数据表名来删除数据.方法2:在数据实体中添加一个删除所有对象的方法.如下
  • 标签:方法 Framework 数据

class="p0">方法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, 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 = new msdbEntities())

 {

       db.DeleteAllSql("DELETE Students");

   }

 

 

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

发表评论
用户名: 匿名