【发布时间】:2011-02-18 02:27:00
【问题描述】:
我有一个 DAL 到 CRUD 产品数据。
例如:
Order someOrder = new Order();
someOrder.Description = "Test";
someOrder.Save();
someOrder.Remove();
我需要设计 DAL,以便只有锁定 Order 类型对象的用户才能执行 CRUD 操作。
我的想法是将会话传递给 CRUD 方法。一旦我通过会话,该方法将检查该用户是否锁定了该特定对象,如果是,它将继续执行该方法。
例如:
someOrder.Save(sessionThatContainsLockInformation);
// Pseudo-code
public void Save(Session session)
{
1. Get user GUID from the session.
2. Get lock details from the session.
3. Check that the provided user has a lock.
4. On success, proceed with saving the order.
}
我担心我在数据访问层中使用会话。我的直觉告诉我,我不应该这样做。我的目标是尽可能少地编写代码以促进代码的可重用性,但我似乎坚持相同的想法。
有人可以告诉我这是否是一种明智的方法,或者它是否有一些基本的缺点或维护开销?
欢迎任何替代解决方案。我对代码不感兴趣,请提供一些想法。
谢谢
【问题讨论】: