このイメージとして、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.
なにか提案を?
Web.config
、2番目のproviderName
を最初のproviderName
と同じに設定し、コントローラーを作成した後、元に戻します!
from: ここ
私の投稿は、誰かが同じ問題を抱えている場合に役立つかもしれません。
同じプロジェクトでEF6とEF5を試してみましたが、<entityFramework>タグが台無しになっていることに気付き、上記と同じ問題が発生しました。
これが私がやったことであり、問題を解決しました:
<entityFramework>タグを削除してEF5を再インストールすると修正され、コントローラーを再び設置できます。
変化する providerName="System.Data.SqlServerCe.4.0
からproviderName="System.Data.SqlClient
このエラーを修正します。
足場を試みる前に、掃除して再構築することを忘れないでください!それが私の間違いでした。
私は同じ問題を抱えており、以下は私のために問題を修正した変更です。 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"/>
参照:
providerName = "System.Data.SqlServerCe.4.0"
をフォローしているユーザー
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />