Ответы пользователя по тегу SQL Server
  • Как сделать обновление миграции EFCore?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    При каждом изменении моделей и/или их связей, нужно сначала сгенерировать очередную миграцию (Add-Migration), а затем - накатить изменения на схему (Update-Database).

    В CLI будет так:
    dotnet ef migrations add NewMigrationName;
    dotnet ef database update;


    Подробнее читать тут.
    Ответ написан
  • Что поучить по базам данных junior .NET Backend?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Есть язык ANSI SQL, он как идел, в чистом виде нигде не существует, каждая СУБД его придерживается, но вносит свои фишечки, которые делают его не полностью совместимым с другими СУБД. SQL с "фишечками" в конкретной СУБД назвается диалектом SQL. В MS SQL Server свой диалект - Transact-SQL. А еще в SQL Server можно встраивать .NET-сборки.

    EF из объектов и выражений генерирует T-SQL-код, отправляет SQL Server и парсит ответ снова в C#-объекты с учетом их связей, почему и называется ORM-фреймворком.

    Как правильно говорят, EF и прочие ORM не освобождают от необходимости знать SQL и того, как там организуются связи. Ибо на собеседосах все равно будут заставлять писать SQL на листочке, а на практике во имя бога производительности вы все равно будете писать хранимые процедуры на T-SQL. Так что работать с ADO.NET нужно уметь, даже не смотря на то, что это выглядит достаточно антично в наш хипстерский век.
    Ответ написан
    Комментировать
  • Asp Net MVC, гд лучше размещать запросы к БД?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Обычно приложения делят на три слоя:
    • Data Access Layer
    • Business Logic (Domain models)
    • UI (Web).


    BL независим, DAL зависит от BL, UI зависит от DAL и BL (ибо там располагается интерфейсы биндятся на реальные классы).

    Если мы рассматриваем классическую схему доступа к данным через репозитории, то:

    BL содержит: доменные модели, интерфейсы для репозиториев, сервисы (интерфейсы и реализации, которые работают с репозиториями).
    DAL содержит: реализации интерфейсов репозиториев (из BL), т.е. работу с DB, DbContext (от EF) и прочую конкретику о том, откуда и каким образом извлекаются данные.
    UI (для ASP.NET MVC) содержит: собственно веб-проект с котроллерами *Controller.cs (Controllers), вьюшками *.cshtml (Views), вью-модели *.cs (Models, те специфические модели, которыми типизируются вьюхи, они могут отличаться от доменных (маппиться с них в контроллере), например, содержать объект с данными пагинации).

    Также UI сожержит корень внедрения зависимостей, где связываются между собой интерфейсы и их реализации, например, интерфейсы репозиториев из BL и реализации (заточенные на работу с БД) из DAL.

    Пример реализации.

    ЗЫ Азы такой архитектуры применительно к ASP.NET MVC есть в замечательной книжке Фримана.
    Ответ написан
  • Как работать с SQL Compact Edition в C#(Mono) на Debian?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    На MSVS жизнь не кончается =) Она просто становится хуже...
    Ответ написан
    8 комментариев