我有一个使用EF 5.0 code-first VS 2012的项目,所有Entity Framework菜单命令(查看实体数据模型DDL SQL)都会弹出“目标调用引发了异常”的弹窗。我认为也改变了的是EF Power Tools Beta 1(或VS 2010,我不确定)曾在输出窗口中显示EF Power Tools消息。现在我只能得到弹窗...这是VS还是Power Tools的问题?
我有一个使用EF 5.0 code-first VS 2012的项目,所有Entity Framework菜单命令(查看实体数据模型DDL SQL)都会弹出“目标调用引发了异常”的弹窗。我认为也改变了的是EF Power Tools Beta 1(或VS 2010,我不确定)曾在输出窗口中显示EF Power Tools消息。现在我只能得到弹窗...这是VS还是Power Tools的问题?
public class MyDbContext: DbContext
{
public static string ConnectionName = "Name = SMS_ADvTECHContext";
static MyDbContext()
{
Database.SetInitializer<SMS_ADvTECHContext>(null);
}
/* public SMS_MyDbContext()
: base(ConnectionName)
{
}*/
}
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
当我在web.config中配置了多个具有相同名称的连接字符串时,我遇到了这个问题。
也许在选择实体框架菜单命令时,Visual Studio无法确定要使用哪个连接字符串来使用您的DBContext。
在我的情况下,我通过验证我是否有一个“默认”的dbContext连接字符串来解决了这个问题。因此,当您右键单击db context并选择Entity framework时,您将连接到DB。
换句话说,我修改了我的DBContext以从我的应用程序的命令行参数中选择连接字符串。因此,通常情况下,我的db context没有“默认”值。
public class MyDbContext : DbContext
{
public static string ConnectionName;
public DnnDbContext()
: base( "Name=" + ConnectionName) {
}
正如您所看到的,我默认情况下没有ConnectionString。
我更改为:
public static string ConnectionName = "DefaultConnNameInAppConfig";