2017-07-03 19 views
1

ASP.NET WebアプリケーションでCS1061エラーが発生します。VS C#データモデル:CS1061: 'エンティティ'に 'tablename'の定義が含まれていません。

「実体」「AspNetRoles」の定義なし拡張メソッド「AspNetRoles」タイプ「エンティティ」の最初の引数を受け入れるが含まれていません(あなたがusingディレクティブまたはアセンブリ参照が不足している?)が見つかりませんでした

以下のようにすべてのテーブルとアクションのための90以上のCS1061エラーメッセージは、(など、取得、削除、追加、変更)があります。私は反映するために、データモデルを更新するまで、Webアプリケーションが正常に動作していた

using EntityData.Model; 
using EntityData.Modules; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace EntityData.Actions 
{ 
    public class AspNetRolesActions : BaseActions<AspNetRole> 
    { 
     public override void Add(AspNetRole t, Guid by) 
     { 
      ctx.AspNetRoles.Add(t); 
      Save(); 
     } 

私はSQL DB上で行った変更。私は清潔にし、無駄に再構築しようとしました。

私はデータモデルへの変更を元に戻す場合は、私は問題のないアプリケーションを実行することができます..しかし、私は私が作成した新しいフィールドにデータを保存することはできません。..起こって何ができるか

+0

あなたはどのような変更を行いましたか? –

+0

テーブルの1つに新しいフィールドを追加しました。私はSSMS上のテーブルの構造を変更するだけです。 "データベースからモデルを更新..."コマンドを使用してデータモデルを更新しようとしました – Sideswipe

答えて

1

ほとんどの場合、SQLテーブルスキーマを変更すると、アプリケーションはコンテキストにマップされたテーブルを正確に見つけることができませんでした。つまり、SQL Dbとの同期が失われました。

「EF DbContext Generator」を使用している場合は、「.tt」ファイルを開き、テーブルを追加する必要があります。

あなたのコンテキストジェネレータのテーブルは、あなたのデータベーススキームを反映していません。いずれにしても、コンテキストをDBスキームに再マップする必要があります。

  1. 解決策に含める必要がある.ttファイルを見てください。

  2. 変更されたテーブルが新しい列のコンテキストに存在するかどうかを確認します。

  3. もしそうでない場合は、簡単にテーブルを削除してdbから追加し直してください。

  4. 次に、ソリューションを再構築します。

+0

どうすればいいですか?つまり、どのようにマップを再マップするのですか?私は他の開発者からこのWebアプリケーションを継承しました。私はデータモデルで新しくなりました。 – Sideswipe

+0

うわー、答えが私に手がかりを与えました.. DataModel.context.csを開いて、 .. VSは新しいコンテキストmodel.csファイルを生成し、クラス名の命名方法を変更しました。この名前は、更新ウィザードの編集不可能なフィールド「App.configの接続設定を保存する:」です。 VSはクラス名として接続文字列名を使用します。 – Sideswipe

+0

私の回答が更新されました。あなたの質問はあまり役に立ちません。あなたのエラーだけでなく、データベースの更新方法、コンテキストなどの詳細についても、詳細をお知らせいただければ幸いです。 –

1

この問題を解決する方法を私に教えてくれたDanielに感謝します。

Visual Studioの更新ウィザードでデータモデルが再作成されたとき、既にアプリケーションに含まれているものとは異なるクラス名が使用されていました。

..

だから何私がやったことは、以前の名前を使用するために生成DataModel.context.csを修正しました、そしてすべてのエラーは今なくなっている私はこれを確認するために、このプロセスに時間のカップルを繰り返したソリューションです。 。

  1. は、私がデータモード(右クリック - >元に戻す)データベースから
  2. モデルの更新...
  3. オープンDataModel.contextに対するすべての変更を元に戻しました。以前の名前にCS
  4. 変更クラス名は
  5. を使用した溶液を再構築し

はダニエルの助けなしにこれを解決したことができませんでした...ありがとう!

+0

あなたは大歓迎です! –

関連する問題