1

私は .net は初めてで、どちらかというと Java 派ですが、コツを掴んでいると思っていました。最初にデータベースでエンティティ データ モデルを抽出した後、突然、互換性のない型エラーがいくつか発生します (以下を参照)。私は他に何もしませんでした。

再現するには:

  1. アカウント コントローラーを使用してテンプレート C# ASP.Net MVC4 インターネット アプリケーションを作成しました。
  2. それを実行し、テスト アカウントを作成しました。
  3. デバッグを停止しました。
  4. 次に、デフォルトの接続文字列を使用して、[プロジェクト] > [新しい項目の追加] > [データ] > [ADO.Net Entity Data Model] を介して .edmx を抽出しました。
  5. 次に、再度デバッグを試みて、次のエラーを取得します。

    Error   1   Cannot implicitly convert type 'MvcApplication1.Models.UserProfile' to 'MvcApplication1.UserProfile'    <fileLocation>  268 40  MvcApplication1
    Error   2   The best overloaded method match for 'System.Data.Entity.DbSet<MvcApplication1.Models.UserProfile>.Add(MvcApplication1.Models.UserProfile)' has some invalid arguments  <fileLocation>  273 25  MvcApplication1
    Error   3   Argument 1: cannot convert from 'MvcApplication1.UserProfile' to 'MvcApplication1.Models.UserProfile'   <fileLocation>  273 45  MvcApplication1
    

コードを提供できますが、これはデフォルトの MS テンプレート コードです。

この方法で抽出を行いたかったので、デフォルトの MS モデルを拡張して、モデルを最初の方法でさらに開発することができます。

  • 何がうまくいかないのですか?
  • これを修正するにはどうすればよいですか?
  • それとも、私はこれについて完全に間違っていますか?(その場合でも、可能であれば修正したいと思います。)
4

1 に答える 1

0

その理由は、MVC4 には Code First ベースのメンバーシップ モデルが付属しているためです。これは AccountModels.cs ファイルにあります。.edmx ファイルを使用して 2 番目のモデルを作成しようとしているため、コンパイラは、同じ名前の互換性のない型が 2 つあると警告しています。

これに対する解決策は、.edmx ファイルに UserProfile を追加しないか、コード ファースト モデルを削除して .edmx モデルのみを使用することです。

于 2012-10-18T15:27:55.190 に答える