0

我使用 Linq-to-SQL 创建模型。我有一个 Movies 表,其中列出了所有用户最喜欢的电影。

在我的虚拟机中,我可以访问当前用户。我想打电话给我的 linq 实体来获取所有用户最喜欢的电影。直接在我的 VM 中的方法中对 Movies 表进行实际的 linq 查询是不好的做法吗?

Public Class MyVM
    Public Sub GetMovies()
        'some linq query to get the movies based on the user's id
    End Sub
    ...more stuff...
End Class

或者,我应该在我的模型中使用该方法并且只GetAll(ByVal id as Integer)从模型或存储库中调用一个函数吗?

我对模式很陌生。我知道模式更像是一种指导,但我想在情况出现时做出这些决定之前正确地遵循它。

4

4 回答 4

1

视图模型用于表示您的数据,例如在视图上(在 ASP.NET MVC 中)。

例如,假设您有一个必须显示用户数据的视图。您将从服务或存储库调用(到数据库)中按 ID 返回一个用户对象。然后,您将将此用户对象映射到视图模型。然后您将此视图模型返回给视图,视图将使用它向客户端显示用户的数据。

如果可以的话,我可以向您展示一些 C# 代码。我没有时间去查找等效的 VB.NET。

于 2013-07-01T13:19:29.833 回答
0

您正在将数据访问层与表示层混合。所以是的,它是反模式。

于 2013-06-25T18:25:17.567 回答
0

如果您想遵循良好的架构,则不应在 Model 或 ViewModel 中编写任何用于从数据库中填充数据的逻辑。

您应该使用 DataServiceAgent 来加载数据。有关 DataServiceAgent 的更多信息,请访问此链接

服务代理在应用程序的顶部引入了一层以与数据库和 Web 服务进行交互。

于 2013-06-25T05:05:24.553 回答
0

为了我。ViewModel 和 Model 是一样的。Model 层是你 View 的镜像……那为什么要使用 ViewModel 而不是 Model?这只是命名冲突

于 2015-03-04T14:29:54.567 回答