惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
博客园 - 聂微东
罗磊的独立博客
W
WeLiveSecurity
博客园_首页
Scott Helme
Scott Helme
V
Visual Studio Blog
T
The Exploit Database - CXSecurity.com
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
Latest news
Latest news
L
Lohrmann on Cybersecurity
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
About on SuperTechFans
F
Full Disclosure
Y
Y Combinator Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 司徒正美
博客园 - Franky
C
CXSECURITY Database RSS Feed - CXSecurity.com
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
阮一峰的网络日志
阮一峰的网络日志
S
Schneier on Security
雷峰网
雷峰网
博客园 - 【当耐特】
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
Engineering at Meta
Engineering at Meta
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
T
Tor Project blog
V
V2EX
爱范儿
爱范儿
C
Check Point Blog
T
Threatpost
Project Zero
Project Zero
量子位
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
I
Intezer
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - ♂风车车

X509Certificate类解析证书的差异,算是.Net的BUG吗? Ninject 2.x细说---2.绑定和作用域 Ninject 2.x细说---1.基本使用 ASP.NET MVC3---1.入门 删除Windows 7系统保留分区100MB .Net并行编程系列文章导航 Entity Framework系列文章导航 多核时代 .NET Framework 4 中的并行编程9---线程安全集合类 多核时代 .NET Framework 4 中的并行编程8---任务的同步 多核时代 .NET Framework 4 中的并行编程7---任务工厂和任务计划 多核时代 .NET Framework 4 中的并行编程6---并行LINQ 多核时代 .NET Framework 4 中的并行编程5---并行循环Parallel Loop 多核时代 .NET Framework 4 中的并行编程4---异常处理 多核时代 .NET Framework 4 中的并行编程3---任务并行库之Task (下) 多核时代 .NET Framework 4 中的并行编程2---任务并行库之Task (上) 多核时代 .NET Framework 4 中的并行编程1---概述 ADSL Modern+无线路由实现无线上网 ASP.Net4中实现自定义的请求验证 通过代码理解Asp.net4中的几种ClientIDMode设置.
Entity Framework 4中删除所有数据行的几种方法
♂风车车 · 2011-08-17 · via 博客园 - ♂风车车

有朋友问如何删除所有数据行的方法.的确,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, 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");

   }

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

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