有朋友問如何删除所有資料行的方法.的确,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
conn.Close();
使用方法如下:
using (var db = new msdbEntities())
db.DeleteAllSql("DELETE Students");
}
總結下來,目前沒有提供删除所有資料對象的方法,是以一般需要自己添加方法或者添加擴充方法來實作.
BTW:今天終于加工資了,雖然.漲幅遠遠超過CPI,但是絲毫沒有什麼喜悅,主要是已經對公司工作内容失去了興趣.是以,工資雖然熬到了一個新階段,但是還是很淡定.
本文轉自風車車 部落格園部落格,原文連結:http://www.cnblogs.com/xray2005/archive/2011/08/17/2143803.html,如需轉載請自行聯系原作者