Проект Visual Studio 2015, который ссылается на проекты EF 5 и EF 6
Кто-нибудь может сказать мне, если есть способ иметь проект, который ссылается на Entity Frameworks 5.x и 6.x? У меня есть два отдельных проекта данных, и один должен быть EF 5.x, это Actian Pervasive, и они не поддерживают EF 6.x. Другой - это MS SQL Server, выполненный в EF 6.x. Мне нужно использовать оба из них в другом проекте, чтобы общаться с обеими базами данных. Я думаю, что я просто SOL, но думал, что увижу, есть ли у кого-нибудь предложения.
1 ответ
Я не думаю, что вы можете использовать две версии одной и той же библиотеки в одном проекте, но есть и другие обходные пути. Вы можете создать 2 webapis, один из которых будет указывать на ваш проект 5.x, предоставляя нужные вам методы, а другой - указывать на ваш проект 6.x, делая то же самое.
После этого в каждом веб-интерфейсе вы можете создавать клиентов 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());