c # winforms организует слой данных - PullRequest
0 голосов
/ 19 сентября 2019

Я начинаю новый большой модульный проект, который будет иметь около 30 модулей и будет использовать базу данных MySQL.Моя идея - разделять модули в новых проектах.Весь проект модуля будет использовать MVP шаблон.

Domain слой, который я использую для хранения Entities (например) User, Product, Catogory информации о полях.

DBA слой использую только для Repositories, где я буду вызывать CUID методы.

Мои вопросы:

  1. В порядкеиспользовать хранилище с доменным слоем, не используя EntityFramework?Все примеры, которые я прочитал, с EF.Могу ли я избежать этого и это хорошая практика?

Я создаю интерфейс хранилища для всех хранилищ:

public interface IBaseRepository<T>
{
    T GetById(Int64 id);

    void Create(T entity);   
    void Update(T entity);  
    void Delete(T entity);
}

И простой Product хранилище

public class ProductRepository : Base.IBaseRepository<Product>
{
    public void Create(Product entity)
    {
        //
    }

    public void Delete(Product entity)
    {
        throw new NotImplementedException();
    }

    public Product GetById(long id)
    {
        using (var conn = new MySqlConnection(ConnectionString))
        {
            conn.Open();
            using (MySqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT * FROM SomeTable";
                using (MySqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        // etc ...
                    }
                }
            }
        }
    }

    public void Update(Product entity)
    {
        throw new NotImplementedException();
    }
}

Это хорошая практика для большого проекта?Можете ли вы предложить мне, что можно редактировать для будущей программы.Я хочу создать действительно хорошую структуру проекта, все комментарии приветствуются.

enter image description here

...