21

この画像のように、VS2012 の MVC 4 アプリケーションにコントローラーを追加したいと考えています。

コントローラを追加

モデル:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcDemo.Models
{
    public class MovieDB
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Director { get; set; }
        public DateTime Date { get; set; }
    }
    public class MovieDBContext : DbContext
    {
        public DbSet<MovieDB> Movies { get; set; }
    }
}

接続文字列:

<connectionStrings>

<add name="DefaultConnection" 
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcDemo-20130315191956;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcDemo-20130315191956.mdf"
providerName="System.Data.SqlClient" />

<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>

</connectionStrings>

「追加」をクリックすると、次のエラーが発生します。

unable to retrieve metadata for 'MvcDDemo.Models.MovieDB'.Using the
same DbCompiledModel to create contexts against different type of
database servers is not supported.instead,create a 
separate DbCompiledModel for each type of server being used.

なにか提案を?

4

8 に答える 8

22

で、 first と同じようWeb.configに second を設定し、コントローラーを作成した後、それを元に戻します!providerNameproviderName

から:ここ

于 2013-03-16T07:43:37.223 に答える
5

に変更 providerName="System.Data.SqlServerCe.4.0providerName="System.Data.SqlClientて、このエラーを修正してください。

于 2013-03-18T20:30:40.987 に答える
5

私の投稿は、誰かが同じ問題を抱えている場合に役立つかもしれません。

同じプロジェクトで EF6 と EF5 を試してみたところ、<entityFramework> タグが台無しになっていて、上記と同じ問題が発生していることに気付きました。

これが私がしたことであり、問​​題を解決しました:

  1. <entityFramework> タグを Web.config から削除しました
  2. nuget を使用して MVC アプリからエンティティ フレームワークをアンインストールしました
  3. エンティティ フレームワークを MVC アプリに再度インストールしました

<entityFramework> タグを削除して EF5 を再インストールすると修正され、コントローラーを再びスキャフォールディングできるようになりました。

于 2014-07-21T04:53:32.970 に答える
0

私は同じ問題を抱えていましたが、以下は私の問題を修正した変更です。localhost を に変更する必要がありました。また、初期カタログ=映画を追加しました。

<add name="MovieDBContext" connectionString="Data Source= localhost\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

後(修正)

<add name="MovieDBContext" connectionString="Data Source= .\SQLEXPRESS;Initial Catalog=Movies; AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

参照:

ASP .Net MVC 4、キー 'attachdbfilename' の無効な値

于 2016-10-20T21:56:15.693 に答える
0

コンテキスト セクションが、そのクラス ライブラリで作成されたコンテキストにアクセスできることを確認してください。例えば: ここに画像の説明を入力

Persistence.DbContexts は正しくありません。このPersistence.DbContexts.DataDbContextを使用する必要があります

于 2021-07-25T07:20:53.830 に答える