В ASP .NET Framework есть возможность создать модель базы данных "database first" и с помощью DataService быстро сделать ORM сервис. Далее с помощью Unchase oData создать классы в клиентской программе для работы с базой через сервис.
Как сделать подобное на ASP .NET Core?
З.Ы.
Уже установил EF на .NET Core, сделал контекст и модели из базы, подключил oData сервис, сделал пару контроллеров на основе моделей, но моделей (таблиц) больше 130, как то можно сделать один контроллер на весь контекст? И как потом создать на основе этого классы в клиентской программе? Может есть способ проще?
stackoverflow по этому поводу молчит в тряпочку) если нужно, могу привести код.
В общем если говорить о "классическом" решении EF и OData, то это будет RESTier из Nuget пакетов, обещают выпустить для .NET Core 3 в начале 2020 года.
А вот это может быть вариантом, подробнее посмотрю и отпишу. Видимо век oData прошел, а на смену ничего толком не предложили. Ну не создавать же gRPC сервис для этого..
Спасибо за ссылки, читал. Все примеры сделаны по большей части на "code first", про "model first" упоминается только на примерах в несколько таблиц. А у меня 130+ таблиц, даже полуавтоматически создавать 130+ контроллеров не очень приятно, а потом описывать 130+ интерфейсов на клиенте тоже не хорошо. В .NET Framework это все можно было автоматизировать, главный вопрос можно ли на .NET Core автоматизировать и с помощью чего?
Владимир Коротенко, это уже сделал Scaffold-DbContext 'connectionString' Microsoft.EntityFrameworkCore.SqlServer -ContextDir Context -Context EntityCont -OutputDir Models
и подключил
services.AddDbContext();
services.AddOData();
services.AddMvc(options => options.EnableEndpointRouting = false);
но создалось 130+ моделей = 130+ таблиц и по идее они мне все будут нужны. Создавать в полуавтоматическом режиме 130+ контроллеров для того что бы с ними работать как то.. не по программерски что ли:)
Контроллеры создаю по одной модели за раз через "API Controller with actions, using EF" и пока не представляю как мне создать столько контроллеров, а потом описать еще их работу в клиентской программе.
И еще маленький нюанс, в .NET Core это уже не WCF, то есть нет $metadata, который endpoint mex насколько помню, получается описание интерфейсов из ASP .NET Core я уже не получу?
Владимир Коротенко, .NET Core под Linux и Docker можно завести, а .NET Framework и WCF только винда. У меня уже работает сервис под .NET Framework с EF и DataService, там это все создается практически автоматом и действительно Вы правы в EF Model есть .tt файл, то есть Т4 шаблон. Насколько я понял DataService имеет WCF корни, а передача осуществляется поверх WCF протоколом OASIS(oData), иначе зачем в App.config строчка endpoint address="" binding="wsDualHttpBinding" .., хотя могу и ошибаться. mex тоже есть в App.config.
Все это ASP .NET Framework,
в .NET Core по этому поводу какой то пробел, и модели скафолдингом создаются без T4.