Visual Studio 2015项目,同时引用了EF 5和EF 6项目

本文关键字:EF 6项目 引用 Studio 2015项目 Visual | 更新日期: 2023-09-27 18:15:54

谁能告诉我,如果有一种方法有一个项目,引用实体框架5。X和6 ?我有两个独立的数据项目,其中一个必须是EF 5。它是Actian Pervasive,他们不支持EF 6.x。另一个是在EF 6.x中完成的MS SQL Server。我需要在另一个项目中使用这两个来与两个数据库交谈。我想我只是一个SOL,但我想我应该看看是否有人有任何建议。

Visual Studio 2015项目,同时引用了EF 5和EF 6项目

我不认为你可以在同一个项目中使用同一个库的两个版本,但是还有其他的解决方法。你可以创建2个webapi,一个指向你的5。X项目,公开您想要的方法,另一个指向您的6。X项目,做同样的曝光。

之后,在每个webapi上,你可以在一个类似合约的层中创建Api客户端,并通过nuget将其暴露给你的客户端。

创建发布到你的webapi的客户端,查看这篇文章。从这里,你不能创建一个客户端,像这样:

public class MyApiClient : BaseHttpClient, IMyApiClient
{
    public MyApiClient() : base(ConfigurationManager.AppSettings["WebApiUrl"])
    {
    }
    public ReturnDTO<ResponseDTO> MyMethod(FilterDTO filter)
    {
        return this.ExecutePost<FilterDTO, ReturnDTO<ResponseDTO>>("YourWebApiURL", filter);
    }
}

BaseHttpClient类只是一个抽象WebClient实现的类。

这样做之后,你可以通过nuget将这个合约层暴露给你的客户端,他们可以简单地做:

var client = new MyApiClient();
var response = client.MyMethod(new FilterDTO());