2012-07-25 78 views
11

レコードを追加/更新して削除するEntity Frameworkにマップされたテーブルがあります。私は "カテゴリ"と呼ばれるSQLサーバからカラムを削除し、モデル内のエンティティを再マップしました。これは正常に機能し、列は消えました。Entity Framework:列を削除した後に列が無効です

今、私は行を更新し、同じエラー、無効な列 "カテゴリ"を取得するために、テーブルのクエリを実行します。

これはSQLテーブルから削除され、Entityから削除されました。したがって、次のコードを実行すると、この気がする列を探していますか?

無効な列名 'カテゴリー':ここで

using (Entities db = new Entities()) 
       { 
         var Voucher = (from vouchers in db.Vouchers 
           where vouchers.ID == ID 
           select vouchers).FirstOrDefault(); 

         if (Voucher != null) 
         { 
          Voucher.Status = (int)Vouchers.UI.Enums.VoucherStatus.Removed;       
          ret = db.SaveChanges() == 1; 
         } 
       } 

はエラーです。

私はコードを掃除して、100回ほど執筆し、再構築し、更新しました。

誰にもアイデアはありますか?

おかげ

+0

既にテーブルマッピングを確認しましたか? –

+0

はい、Entity.Categoryを実行しようとすると列が完全に削除されました。削除されたので機能しません。 – Funky

答えて

19

* .EDMXファイルからテーブルを削除し、次に* .EDMX

+1

何もしませんでした – Funky

+2

その後、ソリューション全体を再構築しましたか? DLL参照の代わりにプロジェクト参照を追加しました – JohnnBlade

+0

Damm !!!それだった!乾杯! – Funky

5

私も削除するために使用されるファイルやテーブルを再度追加に再びそのテーブルを追加し、決してこのような。 私はむしろ何をしていますか?私はモデルを閉じます。右クリックしてXMLとして開き、手動でこの参照を削除します。 これは、1つのモデル内の複数の図を同じにし、定義済みの色を保持します。

2

* .EDMXファイルからテーブル全体を削除する必要はありません。* .EDMXファイルから不要なフィールドを削除するだけです。それは私を助けた

+0

デザイナーでそのオプションが表示されません。手動でxmlから削除する必要がありますか? – RayLoveless

+0

うん、それはxmlから削除する作業...私はまた、C#の生成オブジェクトから列を削除する必要がありました。 – RayLoveless

1

私はまた、デザインビューの.edmxファイルから列を削除して解決同じものに出くわしました。他のオプションは、あなたがテーブルを削除し、あなたの.edmxファイルにそれを再追加するという記事の最初に述べたものです。

関連する問題