【问题标题】:EF Power Tools Beta 2 - exception has been thrown by the target of an invocationEF Power Tools Beta 2 - 调用目标引发了异常
【发布时间】:2012-09-04 12:10:06
【问题描述】:

我有 EF 5.0 代码优先 VS 2012 项目,并且所有实体框架菜单命令(查看实体数据模型 DDL SQL)都会产生“调用目标引发异常”弹出窗口。我认为还发生了变化的是 EF Power Tools Beta 1(或 VS 2010,我不确定)用于在输出窗口中显示 EF Power Tools 消息。现在我得到的只是弹出窗口...这是 VS 还是 Power Tools 问题?

【问题讨论】:

  • 我也遇到了同样的问题,请问您找到原因或解决方法了吗?
  • 我相信这是 EF Power Tools 的问题。这里最大的问题是VS没有给出足够的细节来找出问题所在......
  • 这正是我的观点——没有什么可以帮助缩小范围。可以是 a), b) c).. 我不想遍历所有可能的组合.. 以前的 beta 至少显示了进度和消息,但新的没有(或者我不知道)在哪里看..)

标签: entity-framework


【解决方案1】:

这是我的解决方法:

注释掉构造函数,保持静态 MyDbContext 不变 -->

public class MyDbContext: DbContext
{
    public static string ConnectionName = "Name = SMS_ADvTECHContext";
    static MyDbContext()
    {
        Database.SetInitializer<SMS_ADvTECHContext>(null);
    }

/*  public SMS_MyDbContext()
        : base(ConnectionName)
    {
    }*/
}

然后,如果您右键单击上下文类 --> Enityframework --> 查看实体数据模型(只读)它会生成视图!

【讨论】:

    【解决方案2】:

    当我没有在包含我的 DbContext 类的项目中的 App.config 中配置正确的默认连接工厂时,我遇到了这个错误。我更新了它以使用正确的工厂,这个错误就消失了。就我而言,我将其设置为使用 LocalDbConnectionFactory:

     <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
            <parameters>
                <parameter value="v11.0" />
            </parameters>
        </defaultConnectionFactory>
    </entityFramework>
    

    【讨论】:

      【解决方案3】:

      遇到了这个错误,这是一个更简单的问题......包含我的上下文的项目不是启动项目。一旦我将项目设置为 Startup Project,它就开始工作了。

      【讨论】:

        【解决方案4】:

        当您选择实体框架菜单命令时,也许 Visual Studio 无法确定用于 DBContext 的连接字符串。

        在我的例子中,我可以通过验证我的 dbContext 有一个“默认”连接字符串来解决这个问题。这样,当您右键单击数据库上下文并选择实体框架时,您将与数据库建立连接。

        换句话说,我修改了我的 DBContext 以从命令行参数中选择连接字符串到我的应用程序。因此,通常情况下,我的数据库上下文没有“默认”值。

        public class MyDbContext : DbContext
        {
            public static string ConnectionName; 
        
            public DnnDbContext()
                : base( "Name=" + ConnectionName)  {     
            }
        

        如你所见,默认情况下我没有 ConnectionString。

        我改成:

            public static string ConnectionName = "DefaultConnNameInAppConfig"; 
        

        【讨论】:

          【解决方案5】:

          我在 web.config 中配置了多个同名的连接字符串时遇到了这个问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-22
            • 2018-11-08
            • 2018-02-14
            相关资源
            最近更新 更多