谁能告诉我有没有办法让项目同时引用实体框架5.x和6.x?我有两个独立的数据项目,其中一个必须是EF5.x,它是Actian普及的,它们不支持EF6.x。另一种是用EF 6.x实现的MS SQL Server。我需要在另一个项目中使用这两个数据库来与这两个数据库进行对话。我想我只是索尔,但我想看看有没有人有什么建议。
发布于 2016-11-02 03:32:22
我不认为你可以在同一个项目中使用同一个库的两个版本,但是还有其他的变通方法。您可以创建两个webapis,一个指向您的5.x项目,公开您想要的方法,另一个指向您的6.x项目,进行相同的公开。
之后,在每个webapi上,您可以在类似layer的契约中创建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());https://stackoverflow.com/questions/40366971
复制相似问题