Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在web应用程序中使用“存储”_Asp.net Mvc_Datastore - Fatal编程技术网

Asp.net mvc 在web应用程序中使用“存储”

Asp.net mvc 在web应用程序中使用“存储”,asp.net-mvc,datastore,Asp.net Mvc,Datastore,我在正在开发的web应用程序中看到大量使用商店对象。这个模式有名字吗?你认为这些类型是BLL还是DAL 这些存储区包含我认为经典DAL类型的片段,与单个类型相关。 例如,我们有一个TabStore,其中包含用于持久化和检索选项卡的方法。在TabStore中的每个方法中,都有调用相应NHibernate查询的代码 如果使用这种模式,有什么陷阱?这真的是一个简单的尝试,将曾经的单一Dal类型划分为更易于管理、更小的类型吗 示例方法: public IList<Tab> GetAllTab

我在正在开发的web应用程序中看到大量使用商店对象。这个模式有名字吗?你认为这些类型是BLL还是DAL

这些存储区包含我认为经典DAL类型的片段,与单个类型相关。 例如,我们有一个TabStore,其中包含用于持久化和检索选项卡的方法。在TabStore中的每个方法中,都有调用相应NHibernate查询的代码

如果使用这种模式,有什么陷阱?这真的是一个简单的尝试,将曾经的单一Dal类型划分为更易于管理、更小的类型吗

示例方法:

public IList<Tab> GetAllTabInstancesForUserId(Guid userId)
{
    IList<Tab> tabInstances =
                UoW.Session.CreateQuery("from Tab t where t.UserId=:userId order by t.TabOrder")
                   .SetGuid("userId", userId)
                   .SetCacheable(true)
                   .List<Tab>();

    return tabInstances;
}

如果我正确理解这个问题,那么存储与DAL的关系比与BLL的关系更大,因为它们应该没有什么逻辑——毕竟它们的角色只是存储。

如果我正确理解这个问题,那么存储与DAL的关系比与BLL的关系更大,因为它们应该没有什么逻辑——毕竟它们的角色只是存储。

更多的细节肯定会有帮助,包括使用“存储”的代码片段

但是根据您在问题中的内容,听起来开发人员使用了术语“存储”而不是“存储库”,这意味着与您的数据访问层相关的

更新后…开发者最初称之为“存储库”的东西显然是一个“存储库”。

一些详细信息肯定会有所帮助,包括使用“存储库”的代码片段

但是根据您在问题中的内容,听起来开发人员使用了术语“存储”而不是“存储库”,这意味着与您的数据访问层相关的


更新后……开发者最初称之为“存储”的东西显然是一个“存储库”。

它可能是更常见的“存储库”


抽象存储库属于域模型,但应该由单独的数据访问组件中的具体类实现。

它可能是更常见的域模型


抽象存储库属于域模型,但应该由单独的数据访问组件中的具体类实现。

Stores是一个非常模糊的词。如果你想得到一个像样的答案,可能需要更多的上下文。商店是一个非常模糊的词。如果您希望得到一个合适的答案,可能需要更多的上下文。让数据访问组件仅仅是一种类型(例如TabRepository,与业务逻辑驻留在同一DLL和命名空间中)是否有效?有效性取决于您的需要和应用程序的复杂性,但即使是中等复杂性,我也建议不要这样做,因为在实践中很难确保松耦合。在使用者和具体类型之间进行紧密耦合变得太容易了。让数据访问组件仅仅是一种类型(例如,TabRepository与业务逻辑位于同一DLL和命名空间中)是否有效?有效性取决于您的需要和应用程序的复杂性,但即使对于中等复杂度,我也建议不要使用它,因为它使得在实践中很难确保松耦合。在消费者和具体类型之间进行紧密耦合变得太容易了。