EF 5.0を使用しているだけで、EF4.1と同じように機能する非常に単純なDbContextを再作成しました。
ここでコンテキストとモデル
public class AgenciesDatabaseContext : DbContext
{
public DbSet<Agency> Agencies { get; set; }
}
[Table("QryAgency")]
public class Agency
{
[Key]
public string CardCode { get; set; }
public string DisplayName { get; set; }
public string CardFName { get; set; }
public string Address { get; set; }
public string ZipCode { get; set; }
public string City { get; set; }
}
テーブルがすでに存在するため、このコンテキストのglobal.asax初期化子をnullとして設定しました
Database.SetInitializer<ExtranetCentralizerContext>(null);
web.configの接続文字列は次のとおりです。
<add name="AgenciesDatabase" providerName="System.Data.SqlClient" connectionString="..."/>
リポジトリでDbContextを使用しようとすると、次のエラーが発生します。
InnerException = {"Invalid column name '...'.\r\n Invalid column name '...'.\r\nInvalid column name '...'."}
データベースに接続されていないことがわかったので、不思議です。
私が理解していないのは、接続文字列を次のようなコンテキストに渡せば、機能させることができるということです。
public class AgenciesDatabaseContext : DbContext
{
public DbSet<Agency> Agencies { get; set; }
public AgenciesDatabaseContext ()
: base("AgenciesDatabase")
{
}
}
すべてが正常に機能します。だから私の質問は:EFはその名前(この場合はAgenciesDatabase)と一致する接続文字列を使用することを想定されていませんか?この場合、何が失敗するのですか?