Я начинаю новый большой модульный проект, который будет иметь около 30 модулей и будет использовать базу данных MySQL
.Моя идея - разделять модули в новых проектах.Весь проект модуля будет использовать MVP
шаблон.
Domain
слой, который я использую для хранения Entities
(например) User
, Product
, Catogory
информации о полях.
DBA
слой использую только для Repositories
, где я буду вызывать CUID
методы.
Мои вопросы:
- В порядкеиспользовать хранилище с доменным слоем, не используя 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();
}
}
Это хорошая практика для большого проекта?Можете ли вы предложить мне, что можно редактировать для будущей программы.Я хочу создать действительно хорошую структуру проекта, все комментарии приветствуются.