ローカルのASP.NETMVC3 Windows Azureプロジェクトがあり、エミュレーターにMSSQLExpressのローカルインスタンスを使用しています。
私のweb.configには、次の接続文字列があります。
<add name="ExampleDb" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=ExampleDb;User Instance=true;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
デバッグの目的で、WebRole.csファイルに次のものがあります。
public override bool OnStart()
{
ExampleDb context = new ExampleDb();
context.ExampleItemEntries.Add(new ExampleItem() { ExampleItemId = 1, Att1 = "1", Att2 = "2" });
context.SaveChanges();
return base.OnStart();
}
このアクションを実行すると、コードで最初に生成されたデータベース(Entity Frameworkを使用)のコンテンツを実際に確認できます。データベース:ExampleDb、テーブル:ExampleItem。
ただし、 ExampleController でまったく同じことを行っても、データベースは更新されません。代わりに、このデータは別の場所に移動します(どこにあるかわかりません)。ブラウザ経由でコントローラにアクセスすると、データをアップロードして確認できますが、ExampleDbデータベースには保存されず、WebRole.csから送信されたデータのみがデータベースに保存されます。
この動作を引き起こしているアイデアはありますか?
ExampleDb.csは次のようになります。
public class ExampleDb : DbContext
{
public ExampleDb() : base("ExampleDb") { }
public DbSet<ExampleItem> ExampleItemEntries { get; set; }
}