我正在使用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耦合。如果有人能想到更好的方法,我会很感激。
答案 0 :(得分:0)
如果我理解正确,您是通过WCF进行数据访问的吗?如果是这样,我将通过WCF服务返回业务数据(类),通过MVC应用程序的服务类映射到ViewModel类,然后将所有视图模型传递到控制器/视图。 如果我误解了你的问题,请纠正我。