2017-08-31 16 views
2

でデータベースを作成しますプロジェクトはSQL Serverに接続するように構成され、同じ接続文字列をapp/web.configに定義します。Entity Frameworkのは、私は私の溶液中で二つのプロジェクトを持っている間違った名前

<add name="AppContext" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=localhost\SQLEXPRESS;Database=XYZAC;Integrated Security=True" /> 

問題はコンソールアプリケーションでのみ発生します。 WebアプリケーションはXYZACデータベースを正しく作成します。しかし、コンソールアプリケーションは、Namespace.AppContextの行に沿った名前のデータベースを作成します。これはまったく必要ではありません。そのため、これらのプロジェクト間のコミュニケーションはありません。

コンソールアプリケーションの接続文字列にDatabase=からInitial Catalog=に変更しようとしましたが、何も変更されませんでした。

何がこの原因になることができますか? APIがIIS APPPOOL\XYZACユーザーとアプリ経由でWINSRV\Administrator経由でログインしているため、このエラーが発生する可能性がありますか?おそらく、どちらも同じアクセス許可グループとすべてのアクセス権を持っているためだと思われますが、それ以外に何が原因なのかわかりません。

私はここで間違っていますか?

編集:私は、これら2つのプロジェクト間でDBモデルを共有しています。接続文字列をコンストラクタにハードコーディングしてみます。

+0

'DbContext'コンストラクタを確認してください。 .configの接続文字列を使用するように指定していないと思います。 –

+3

また、コンソールアプリケーションはweb.configを使用しません。 your.app.name.exe.cofigファイルを使用します。 –

+0

コンソールアプリケーションに 'app.config'を追加する必要があります。 –

答えて

0

はハードコーディングこのように同じ文字列が問題を解決しました。それが機能する限り、そうですか?

0

は、作成したXYZデータベースからのコンソールアプリケーションに足場を試してみて、それが足場コンテキストに接続するかどうかを確認します。

public AppContext() : base("Sql n stuff;XYZAC") 

クール:

関連する問題