创建视图模型我通常
但如果我有"宽"表,所以我需要使用LINQ投影创建视图模型?我希望Id
实体中的Name
和Product
属性以及Id
实体中的Customer
属性 - 但我不想要休息,因为那很贵。
所以我需要访问IQueryable<>
,这只在上下文和存储库中可用。
我的选择:
在存储库中创建viewmodel。但这意味着域和UI紧密耦合。它还意味着UI类必须与域在同一个程序集中。
从存储库中公开IQueryable<>
,并允许服务类(或控制器)执行投影,并映射到viewmodel。但那&#34;泄漏&#34;域进入服务和用户界面。
因此,在加载整个实体时,很容易保持整洁。但是当通过投影加载时,它很棘手。
我还有其他/更好的选择吗?
编辑:这不是一个重复的问题。说真的,那个以文本&#34开头;我在理解ViewModel的目的时遇到了问题。&#34;