【问题标题】:Visual Studio 2015 project that references both EF 5 and EF 6 projects引用 EF 5 和 EF 6 项目的 Visual Studio 2015 项目
【发布时间】:2016-11-01 19:07:20
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我认为您不能在同一个项目中使用同一个库的两个版本,但还有其他解决方法。您可以创建 2 个 webapi,一个指向您的 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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多