2012-08-17 75 views
0

我正在使用SQL Dapper进行检索,NHibernate用于CRUD的ASP.NET MVC应用程序。我正面临着层分离的一些问题。使用SQL Dapper和NHibernate进行ASP.NET MVC图层分隔

我有存储库说UserRepository其中有公共用户GetUsersList()方法。这里的“用户”是一个NHibernate实体。这里的问题是我需要在用户界面中显示一个不存在的属性,如'HasAltContacts',我直接从SQL查询中获取该属性。

现在,我的问题是我需要创建单独的DTO,并离开这些NHibernate实体并围绕这些类构建存储库(至少读取方法)?

回答

0

这里“用户”是NHibernate实体。这里的问题是我需要 在用户界面中显示一个不存在的属性,如我直接从SQL查询接收的 'HasAltContacts'。

定义将包含视图所需的所有属性的视图模型。然后让您的控制器操作通过查询您拥有的各种数据源来填充此视图模型,并将此视图模型传递给视图。

+0

感谢您的回复。这引起了我的困惑,'HasAltContacts'不是我可以从db中单独获取或计算出来的字段,可以在ViewModel中使用。它是查询的一部分,我正在执行匹配DAL层中“用户”实体属性的字段。需要有一些属性(目前不是用户实体的一部分)一直运行到MVC应用程序。我关心的是,我们是否定义了另一个具有这些DTO对象的图层,以传递给MVC应用程序? – Sunny 2012-08-17 14:29:21