1

コード ファースト データベース メソッドを使用して、しばらくの間 MVC アプリケーションに取り組んできました。

現在、SQL Server 2008 データベースをセットアップしており、それを本番環境で使用したいと考えていました。

しかし、何があってもローカルで作成された.sdfデータベースを使用します。

web.config connectionStringsto を編集してみました

<connectionStrings>
   <add name="DefaultConnection" 
        providerName="System.Data.SqlServer" 
        connectionString="Server=-edit-;Database=-edit-;User Id=-edit-;Password=-edit-;" />
   <!--<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-SignalR-20130806111535;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-SignalR-20130806111535.mdf" />-->
</connectionStrings>

あたかも機能しているように見えますが、これはまったく機能しません

<system.data>
   <DbProviderFactories>
      <remove invariant="System.Data.SqlServerCe.4.0" />
      <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
   </DbProviderFactories>
</system.data>

それと関係があります。

チュートリアルを確認しようとしましたが、すべての停止で失敗しています。

4

2 に答える 2

2

接続文字列に割り当てる必要がある正しい名前を確認する必要があります。たとえば、次のような DbContext がある場合は、完全なクラス名が必要です。

namespace ApplicationOrders.EF
{
 public class OrderContext : DbContext
   {
       public OrderContext(){}
 }
}

接続は次のようになります。

<connectionStrings>
    <add name="ApplicationOrders.EF.OrderContext"

または、次の方法で接続文字列名を DbContext に追加できます。

public class OrderContext : DbContext
{
    public OrderContext()
        : base("DefaultConnection")
    {}
}
于 2013-08-12T15:05:03.040 に答える
0

プロバイダー クラス名は

providerName="System.Data.SqlClient" 

いいえ

providerName="System.Data.SQlServer"
于 2013-08-12T15:04:18.127 に答える