bll调用mysql存储过程_asp.net-mvc – ASP.NET MVC:BLL和DAL到Repository设计

您可以使用每种数据访问技术来利用存储库.

存储库是对现有数据访问助手/服务的抽象,允许业务逻辑与数据访问层分离.存储库与Query一起使用以启用过滤.它通常与工作单元一起使用,以将更改存储回数据库.

存储库至少有:

> Get-object-by-key操作

> Get-all-objects操作

> Get-first-object-by-query操作

>按查询对象获取操作

一个非常简单的例子:):

A.产品类,在Common中定义:

public class Product

{

public int Id { get; private set; }

public string Code { get; set; }

public string Name { get; set; }

public decimal Price { get; set; }

}

B. Query,IRepository和IUnitOfWork的类在DAL.interfaces.dll或Common.dll中定义(但不在DAL中!).

public class Query

{

public string Text { get; set; }

}

public interface IRepository

where TEntity : class

{

bool TryGet(int key, out TEntity value);

TEntity this[int key] { get; }

IEnumerable GetAll();

bool TryGetFirst(Query condition, out TEntity value);

TEntity GetFirst(Query condition);

IEnumerable GetAll(Query condition);

int Count { get; }

}

public interface IUnitOfWork

{

void SetAdded(TEntity value); // Marks entity as added for further INSERT

void SetRemoved(TEntity value); // Marks entity as removed for further DELETE

void SetChanged(TEntity value); // Marks entity as modified for further UPDATE

void Save(); // Save all the changes

}

IUnitOfWork了解已更改的实体. Save()为每个更改的实体调用适当的DatabaseHelper / OdbcHelper CRUD方法,以便在数据库中保留更改.

IRepository< Product>,… IRepository< EntityXY>的实现和IUnitOFWork应放在DAL中.然后,BLL使用IRepository和IUnitOFWork来实现业务(域)逻辑. BLL本身可以组织为域模型顶部的服务层,但它超出了讨论的范围:).

我希望我的回答有所帮助.

请随时问我一个问题……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值