在Entity Framework C ++ / CLI上配置连接字符串

时间:2017-02-21 12:15:57

标签: c# c++ .net entity-framework c++-cli

我有一些项目(我试图连接到本地数据库):

  1. 使用EF连接到数据库的DB_API项目(C#项目)
  2. NativeCallingCLR.MixedDLL(C ++ / CLI) - 用于调用C#DB API方法的IL桥接
  3. NativeCallingCLR.Native(C ++) - 从C ++ / CLI实现API以连接到数据库
  4. 此项目结构基于: 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对象时,此方法失败。

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

1 个答案:

答案 0 :(得分:0)

好吧,好像我真的不明白我在做什么。

这个stackoverflow帖子为我解决了这个问题:

How do I programmatically set the connection string for Entity-Framework Code-First?