[英]Entity Framework Code-First: Generate SQL script with 'Update-Database' produces XML error while parsing
[英]Error while connecting to database in code-first Entity Framework
当上下文尝试使用实体框架的代码优先方法连接到数据库时,出现以下错误消息
System.Data.Entity.DbContext'不包含'System'的定义,找不到扩展方法'System'接受类型为'System.Data.Entity.DbContext'的第一个参数(您是否缺少using指令或组装参考?)
码:
public class Context : DbContext, IDisposable
{
public Context() : base("EcommConnectionString")
{
}
public List<Entities.RLI_State> States { get; set; }
public List<Entities.RLI_Product> Products { get; set; }
public List<Entities.RLI_StateProduct_List> StateProductList { get; set; }
}
这是我在web.config
定义的连接字符串的方式:
<appSettings>
<add key="EcommConnectionString"
value="data source=localhost;initial catalog=tempdb;integrated security=SSPI" />
</appSettings>
这里有两个问题。
首先,DbContext已经植入了IDisposable,因此您不需要。 在那里没有问题,但这是多余的。
其次,您的List<>
属性应该使用DbSet<>
代替:
public class Context : DbContext
{
public Context() : base("EcommConnectionString")
{
}
public DbSet<Entities.RLI_State> States { get; set; }
public DbSet<Entities.RLI_Product> Products { get; set; }
public DbSet<Entities.RLI_StateProduct_List> StateProductList { get; set; }
}
最后,如@marc_s所述,您的web.config中的连接字符串应位于<connectionStrings>
元素中,而不应位于<appSettings>
:
<connectionStrings>
<add name="EcommConnectionString"
connectionString="data source=localhost;initial catalog=tempdb;integrated security=SSPI" />
</connectionStrings>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.