我有EF 5.0代码优先VS 2012项目和所有Entity Framework菜单命令(View Entity Data Model DDL SQL)产生“调用目标抛出异常”弹出窗口。我认为改变的是EF Power Tools Beta 1(或VS 2010,我不确定)用于在输出窗口中显示EF Power Tools消息。现在我得到的只是弹出窗口......这是VS还是Power Tools问题?
答案 0 :(得分:4)
这是我的工作:
注释构造函数,并将静态MyDbContext保持原样 - >
public class MyDbContext: DbContext
{
public static string ConnectionName = "Name = SMS_ADvTECHContext";
static MyDbContext()
{
Database.SetInitializer<SMS_ADvTECHContext>(null);
}
/* public SMS_MyDbContext()
: base(ConnectionName)
{
}*/
}
然后,如果右键单击上下文类 - &gt; Enityframework - &gt;查看实体数据模型(只读)它生成视图!
答案 1 :(得分:1)
当我在包含我的DbContext类的项目中的App.config 中没有配置正确的默认连接工厂时,我遇到了这个错误。我更新它以使用正确的工厂,这个错误消失了。在我的例子中,我将其设置为使用LocalDbConnectionFactory:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
答案 2 :(得分:1)
遇到这个错误,这是一个更简单的问题......包含我的Context的项目不是启动项目。一旦我将项目设置为启动项目,它就开始工作了。
答案 3 :(得分:0)
当您选择Entity Framework菜单命令时,Visual Studio可能无法确定用于DBContext的连接字符串。
就我而言,我能够通过验证我的dbContext有一个“默认”连接字符串来解决这个问题。因此,当您右键单击db context并选择Entity framework时,您将与DB建立连接。
换句话说,我修改了我的DBContext,从命令行参数到我的app选择连接字符串。因此,通常,我的db上下文没有“默认”值。
public class MyDbContext : DbContext
{
public static string ConnectionName;
public DnnDbContext()
: base( "Name=" + ConnectionName) {
}
如您所见,默认情况下我没有ConnectionString。
我改为:
public static string ConnectionName = "DefaultConnNameInAppConfig";
答案 4 :(得分:0)
当我在web.config中配置了多个具有相同名称的连接字符串时,我遇到了这个问题。