正常に動作し、データベース サーバーに正しく接続する EF コードの最初の Web アプリがあります。アプリと連携するサービスのロジックをテストするために、ソリューションにコンソール アプリを追加しました。
コンソールアプリがデータを保存していない理由について頭を悩ませていたので、データベースからの単純なフェッチに切り詰めました。元のコンソールアプリがレコードを保存していたことがわかりましたが、指定されたものとは異なるデータベースに接続文字列で。
app.config からの接続文字列は次のとおりです。
<add name="DatabaseContext" connectionString="Data Source=xxx.xx.x.xx; Initial Catalog=OKWU_Gateway; User ID=xxxxx; Password=********; Trusted_Connection=False;" providerName="System.Data.SqlClient" />
<add name="DevelopmentEntities" connectionString="metadata=res://*/EntityModel.csdl|res://*/EntityModel.ssdl|res://*/EntityModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=;Data Source=|DataDirectory|\OKWU_Gateway.mdf" providerName="System.Data.EntityClient" />
データベースコンテキストは
コンソールアプリは非常にシンプルです
Database.SetInitializer<DatabaseContext>(null);
static void Main(string[] args)
{
using (DatabaseContext db = new DatabaseContext())
{
var query = from u in db.Users where u.Id == 1 select u;
foreach (User u in query)
{
Console.WriteLine(u.Id + " " + u.FirstName + " " + u.LastName);
}
Console.ReadLine();
}
}
ただし、リモートサーバーのデータベースに接続する代わりに、開発マシンのsqlexpressに接続して、このデータベースにアクセスしています。
UniversityGateway.Data.DatabaseContext
|DataDirectory| を指すように接続文字列を変更してみました。を SQL 接続文字列に追加しましたが、違いはありませんでした。接続文字列は web.config の内容と同じであり、前述のとおり、Web アプリは正常に動作します。
私が欠けているものについてのアイデア、またはこれを解決するための正しい方向を教えてくれますか?