2011-07-20 16 views
6

私はasp.net MVC3 /コードファーストのEntity Frameworkアプリケーションでオブジェクトを削除しようとしていますが、「DeleteObjectの定義が含まれていません」というように、必要なオプションがないようです。エラー。私がアセンブリの参照を紛失しているかどうかは誰にでも分かります。ここに私のリポジトリのコードは次のとおりです。ここでEntityフレームワークでDeleteObjectを呼び出せません - アセンブリ参照がありませんか?

private dbContext db = new dbContext(); 

public void DeleteAccessDetails(AccessDetails details) 
{ 
    db.DeleteObject(details); //error here as DeleteObject isn't recognised 
} 

は私の参照です:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using MySite.Models; 
using System.Data; 
using System.Data.Objects; 
using System.Web.Mvc; 
using System.Data.Entity; 

私はSystem.Data.EntityがDeleteObjectのを持ち出すには十分だったでしょう持つが、インテリセンスはほとんどすべてのオプションを育てていないと思いました - だけ処分し、エントリ、SaveChangesメソッドおよびSet

編集:ここにもリポジトリにアクセスするための私のコードです:

Repository rep = new Repository(); 
AccessDetails paymentUpdate = rep.GetPaymentByID(item.AccessDetailsTableID); 
rep.DeleteAccessDetails(paymentUpdate); 

編集2:EF4.1でDbContextのドキュメントが、それは上のdeleteメソッドが含まれていないことを示しているようだ

enter image description here

おかげ

+0

私の参照フォルダにはSystem.Data.Objectsがありません。 Add Referenceセクション(.NETタブ)を見てもそこにはありませんでした。 –

答えて

23

DbContextにはDeleteObject()メソッドがありません。その代わりにRemove()メソッドを使用してDbSetからオブジェクトを消去し、変更を保存します。

context.Entry(temp).State = EntityState.Deleted; 

削除()リストの削除中にのみMVC 5 使用RemoveRange代わりにDeleteObjectのでは... DBContextに

+0

nullable以外の外部キー制約がある場合、Remove()は機能しません。 – NoRMO

0

あなたはこのフォーマットを使用することができます。

RemoveRange();

0

を働く:

dbContext db = new dbContext(); // Arrange the context 

Department dept = db.Departments.Single(p => p.Id == "1"); // Find the item to remove 

db.Departments.Remove(dept); // Remove from the context 

b.SaveChanges(); // Delete from the database 
関連する問題