1.使用仓储模式:创建一个泛型仓储接口来处理所有表的数据,并在每个实体类中实现仓储接口。这使得处理多个表变得简单且易于维护。以下是一个简单的示例:
public interface IRepository where T : class
{
void Add(T entity);
void Update(T entity);
void Delete(T entity);
IEnumerable GetAll();
T GetById(int id);
}
public class ProductRepository : IRepository
{
// implementation for Product
}
public class OrderRepository : IRepository
{
// implementation for Order
}
2.使用自动生成的代码:可以使用Visual Studio的Entity Framework工具,从数据库生成实体类及其相关的上下文和仓储类。这样可以快速地生成100个实体类,并创建一些通用方法来处理它们。
3.使用Dapper库:Dapper是一个轻量级的ORM库,可以映射查询结果到实体对象。使用Dapper可使CRUD操作更加容易和高效。以下是一个简单的示例:
public class ProductRepository
{
private readonly IDbConnection _dbConnection;
public ProductRepository(IDbConnection dbConnection)
{
_dbConnection = dbConnection;
}
public IEnumerable GetAll()
{
string query = "SELECT * FROM Products";
return _dbConnection.Query(query);
}
public Product GetById(int id)
{
string query = "SELECT * FROM Products WHERE Id = @Id";
return _dbConnection.QuerySingleOrDefault(query, new { Id = id });
}
public void Add(Product entity)
{
string query = "INSERT INTO Products (Name, Description, Price) VALUES (@Name, @Description, @Price)";
_dbConnection.Execute(query, entity);
}
public void Update(Product entity)
{
string query = "UPDATE Products SET Name = @Name, Description = @Description, Price = @Price WHERE Id = @Id";
_db
上一篇:ASP.NetCore:如何配置自动映射器配置文件以针对不同的源和目标?
下一篇:ASP.NETCore:是否有一种使UrlHelper函数(Url.Action等)能够与动态路由一起工作的方法?