2017-02-21 72 views
0

我有几个项目(我试图连接到本地DB):使用EF配置连接字符串++/CLI

  1. DB_API项目(C#项目)连接到DB
  2. NativeCallingCLR.MixedDLL(C++/CLI) - IL桥调用C#DB API方法
  3. NativeCallingCLR.Native(C++) - 实现从C++/CLI的API连接到DB

该项目结构是基于: https://www.codeproject.com/Articles/35041/Mixing-NET-and-native-code

我试图配置EF连接不与运行程序集配置,但与其他配置/创建一个配置文件到本地c + +项目。

我试图来配置这样的连接:

创建一个类的结构是这样的:

public partial class ABC : DbContext 
{ 
    public ABC(DbConnection conn) : base (conn,true) 
    { 

    } 
} 

然后创建的DbConnection对象是这样的:

public int CreateConnection(string DBConnectionString, string DBProviderName) 
{ 
    var conn = DbProviderFactories.GetFactory(DBProviderName).CreateConnection(); 
    conn.ConnectionString = DBConnectionString; 
    db = new ABC(conn); 
    return _PASS; 
} 

我用这些参数调用CreateConnection:

DBConnectionString="metadata=res://*/InDBM.csdl|res://*/InDBM.ssdl|res://*/InDBM.msl;provider=System.Data.SqlClient;provider connection string='data source=localhost;initial catalog=Mycatalog;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework'" 

DBProviderName="System.Data.EntityClient" 

这些参数工作得很好,当我试图连接一个app.config和一个C#运行程序集,但是当我尝试连接创建Dbconnection对象时,此方法失败。

有人知道我在做什么错在这里?

回答