我只是在使用 EF 5.0,并且我重新创建了一个非常简单的 DbContext,它与 EF 4.1 一样工作。
这里的上下文和模型
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)???是什么让它在这种情况下失败?