WCF和MVC3,系统架构。使用WCF传递视图模型?

时间:2011-10-10 09:46:02

标签: wcf asp.net-mvc-3 entity-framework

我正在使用Entity Framework,Linq,WCF和MVC3。系统已拆分为层级方法,我正在使用WCF,因为多个系统将使用相同的数据访问和业务逻辑。

数据访问 - 业务逻辑 - API(WCF) - 服务类 - MVC

对于我的MVC应用程序中的每个View,需要编写LINQ查询,访问数据库中的不同表并显示摘要,如下所示。

        var users =
           (from u in _userRepository.All
            from upd in u.UserPropertyData.DefaultIfEmpty()
            from upd1 in u.UserPropertyData.DefaultIfEmpty()
            where (upd.UserPropertyType.Alias == "Forename") && (upd1.UserPropertyType.Alias == "Surname")
            select new UserModel
            {
                Id = u.Id,
                Forename = upd.Value,
                Surname = upd1.Value,
                EmailAddress = u.Email
            });

此查询位于我的业务逻辑部分,并将UserModel通过我的WCF API传递到我的Service类,该类将Model传递给我的Controller,然后在View中显示。

这种方法似乎不正确,因为数据访问和业务逻辑通过传回“视图模型”与MVC耦合。如果有人能想到更好的方法,我会很感激。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您是通过WCF进行数据访问的吗?如果是这样,我将通过WCF服务返回业务数据(类),通过MVC应用程序的服务类映射到ViewModel类,然后将所有视图模型传递到控制器/视图。 如果我误解了你的问题,请纠正我。