0

EF 5.0 で削除ステートメントを実行しようとしています。5000〜40000レコードを削除すると、ここに私のコードがあります:

using(myEntity ctx = new myEntity) {
var q = from s in ctx.MyTable.where( x => x.accountID == 1234) select s;
ctx.myTable.Remove(q);     
// because there is no ctx.DeleteObject(whatever) 
// since this is not EF 4.0
}

エラーは次のとおりです。 「System.Linq.IQueryable」から「namespace.myTable」に変換できません

何か案が?

4

2 に答える 2

0

テーブル エントリを削除するのではなく、テーブルから LINQ クエリを削除しようとしています (これは意味がありません)。

あなたがする必要があるのは、これのいずれかです:

using(myEntity ctx = new myEntity) {
    var q = from s in ctx.MyTable.where( x => x.accountID == 1234) select s;
    foreach(var entry in q)
    {
        ctx.myTable.Remove(entry);     
    }
}

または、ストアド プロシージャを作成し、Entity Framework にインポートして実行します。

于 2013-09-18T17:49:26.723 に答える