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

时间:2016-11-01 19:07:20

标签: c# visual-studio-2015 entity-framework-6 entity-framework-5 actian

有人能告诉我是否有办法让项目引用实体框架5.x和6.x?我有两个独立的数据项目,一个必须是EF 5.x,它是Actian Pervasive,它们不支持EF 6.x.另一个是在EF 6.x中完成的MS SQL Server。我需要在另一个项目中使用这两个来与两个数据库进行通信。我想我只是SOL,但我想我会看看是否有人有任何建议。

1 个答案:

答案 0 :(得分:0)

我认为您不能在同一个项目中使用同一个库的两个版本,但还有其他解决方法。您可以创建2个webapis,一个指向您的5.x项目,公开您想要的方法,另一个指向您的6.x项目,进行相同的曝光。

之后,在每个webapi上,您可以在类似合约的合同中创建Api客户端,并通过nuget将其公开给您的客户。

要创建发布到您的webapi的客户,请检查this post。从那里,你不能用这样的东西创建一个客户端:

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());