Проект 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());
Другие вопросы по тегам