【问题标题】:Business Logic + ASP.NET MVC业务逻辑 + ASP.NET MVC
【发布时间】:2011-09-03 03:47:51
【问题描述】:

我有一个 MVC 应用程序,它分为 3 层: - 演示文稿 - ASp.NET MVC - 业务逻辑 - 这里我们有实体和对象服务。我们在 DAL 对象和 BL 对象之间也有映射器 - 数据访问层 - 我们使用 EF 来查询数据库。 现在,我们已经为对象服务创建了一个工厂,该工厂稍后会使用 Unity 注入到表示中。每次我想做一些逻辑时,我都会调用一个适当的服务,它使用 DAL 存储库来做一些事情。 现在,愚蠢的问题,假设我想检查是否可以添加具有提供昵称的用户。昵称在数据库中是唯一的,因此在添加用户之前,我会检查是否存在具有提供昵称的用户。因此,这是一个返回真/假的简单查询。因为我在表现层和业务层之间没有任何联系,所以我在服务中检查它。但是服务方法的代码看起来很简单:

var exists = repository.NicknameExists(nickname);
return exists;

上面的代码很奇怪,因为它什么都不做,只是调用一个方法并返回它的值。另一方面,我有关注点分离,所以我的解决方案组织得很好。谁能给我一些建议,我应该如何解决这样的问题?

【问题讨论】:

    标签: asp.net-mvc model-view-controller repository data-access-layer business-logic


    【解决方案1】:

    我认为这里没有任何问题。这对我来说是完美的方法:

    public bool IsUserExists(string nickname)
    {
        return repository.NicknameExists(nickname);
    }
    

    我建议您阅读此blog post 关于创建例程的正当理由或Code Complete 2ed 的第 7.1 章

    【讨论】:

    • 能否将其重命名为“DoesUserNicknameExist”,这样我的内在语法纳粹就不会爆炸? ;)
    猜你喜欢
    • 2021-02-24
    • 1970-01-01
    • 2017-01-10
    • 2011-12-03
    • 1970-01-01
    • 2011-01-05
    • 2011-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多