正在启动一个新的大型模块化项目,该项目将包含约30个模块,并将使用MySQL
数据库。我的想法是在新项目中分离模块。
所有模块项目都将使用MVP
模式。
Domain
层用于存储Entities
,例如User
,Product
,Catogory
有关字段的信息。
DBA
层仅用于Repositories
,在这里我将调用CUID
方法。
我的问题是:
我为所有存储库创建存储库接口:
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();
}
}
对于大型项目,这是一种好的做法吗?您能建议我为将来的程序进行编辑的内容吗? 我想创建一个非常好的项目结构,欢迎所有评论。