在SSIS脚本任务中的类库中使用Entity Framework v6

时间:2017-02-19 00:27:42

标签: c# .net sql-server entity-framework ssis

我一直在努力争取这一天,最后不得不把它交给专家。

我在.Net 4.5.2中构建了一个类库,它正在使用实体框架v6做一些工作。当我将它带入控制台应用程序时(一旦我带来了app.config并在引用中添加了实体框架),它的工作非常可爱。

我想在我的SSIS脚本任务中使用该库。在GAC中加载库之后,由于我知道脚本无法访问配置文件(与控制台应用程序相同),因此我会动态传递连接字符串....(示例)

partial class TemplateEntities
{
  public TemplateEntities( string nameOrConnectionString )
    : base( nameOrConnectionString )
  {
  }
}

但是我在尝试加载EntityFramework时遇到了问题。

I followed these instructions to dynamically load the assembly,但它开始抱怨

  

{“指定的架构无效。错误:\ r \ nImportModel.ssdl(2,2):   错误0152:找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序。   确保提供程序已在应用程序配置文件的“entityFramework”部分中注册。小号   ee http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。“}

我的想法是,好吧,它需要其他配置垃圾......所以我给了它一些代码配置

[DbConfigurationType(typeof(EFCodeConfig))]
public partial class importEntities : DbContext
{
    public importEntities(string connectionString) : base(connectionString) {
        //var instance = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
    }
}

public class EFCodeConfig : DbConfiguration
{
    public EFCodeConfig()
    {
        this.SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.SqlConnectionFactory());
        this.SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);

    }
}

现在我收到以下错误:

  

的InnerException:          的HResult = -2146233054          Message =无法从程序集'EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'加载类型'System.Data.Entity.SqlServer.SqlProviderServices'。          来源= ImportService          类型名= System.Data.Entity.SqlServer.SqlProviderServices          堆栈跟踪:               在ImportServices.EFCodeConfig..ctor()          InnerException:

我知道EntityFramework.SqlServer.dll在我的库调试目录中,但是没有加载到模块的脚本列表中。我试图拦截解析请求并加载它,但解决方案请求永远不会来这个DLL。我甚至尝试直接加载组件,但这不起作用。

我现在处于斗智斗勇,我已经尝试了我能想到的一切或g​​oogle。感谢。

0 个答案:

没有答案