Модели в отдельном проекте C # или же? - PullRequest
0 голосов
/ 27 февраля 2019

Я создаю C # MVC Net Core Application.

Читая некоторые книги, некоторые советуют писать Модели баз данных в своем собственном проекте.Другие говорят, что в их собственном проекте не должно быть моделей баз данных.Просто любопытно, какие выгоды / преимущества получают от размещения моделей в собственном проекте?Вопрос «Не нужно задавать наоборот».Я просто спрашиваю преимущества разделения моделей?(Этот вопрос не основан на мнении и не будет запрашивать рекомендации, только функциональные преимущества для этого способа)

1 Ответ

0 голосов
/ 28 февраля 2019

Основным преимуществом размещения моделей вашей базы данных в отдельном проекте является то, что вы пишете приложение, которое будет поддерживать несколько систем баз данных для хранения данных.В этом случае у вас может быть что-то вроде этого (в сборке GregThomas.MyApp.DataAccess.Common:

namespace GregThomas.MyApp.DataAccess.Common
{
    public interface ISprocketRepository
    {
        Task<IEnumerable<Sprocket>> GetAllAsync();
    }

    public class Sprocket
    {
        // All the properties of a sprocket would be here
    }
}

Затем у вас будут отдельные сборки для каждого из поставщиков баз данных, которые вы хотите поддерживать, например, в сборкеGregThomas.MyApp.DataAccess.SqlServer:

namespace GregThomas.MyApp.DataAccess.SqlServer
{
    public sealed class SprocketRepository : ISprocketRepository
    {
        Task<IEnumerable<Sprocket>> ISprocketRepository.GetAllAsync()
        {
            // Code to retrieve sprockets from a SQL Server database here
        }
    }
}

Каждая из ваших конкретных сборок базы данных будет ссылаться на сборку .Common , чтобы иметь возможность реализовать соответствующие интерфейсы и получить доступ к моделям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...