WPF、WCF、Entity、MVVM的疑惑!

标签 wpf wcf entity-framework mvvm light

我在 WPF 项目中使用 WCF 服务引用,并且我的 Entity Framework 数据模型位于 WCF 项目中。

我正在使用 MVVM Light 框架。我正在做以下事情:

  • 我在服务中使用 LINQ 来获取数据,然后从 WPF(通常是 obersvablecollections)中获取数据。
  • 一切都在 View 部分工作,如填充数据网格,根据需要查看 View 。

  • 但我有以下疑问:
  • 这是在 wcf 和 wpf 之间传输数据的正确方法吗?
  • 我还没有用过这个模型,我怀疑什么时候用它?
  • 我还想从数据网格中保存数据。我能够将 datagrid 的更新数据的 observablecollection 传递给服务的功能。但是我如何从这个集合中更新实体?通过循环?听起来不对。一旦我从这个集合中更新实体,我将能够使用 saveChanges 更新到数据库中。
  • 当我需要在 TreeView 中显示分层数据时,从存储过程 xml 到哪里使该数据分层?使用 View 创建分组标准列?在服务中创建此列?在演示文稿中创建此列/属性?
  • 最佳答案

    1 - 没有正确的方法,这取决于您的要求和目标。

    2 - 使用 MVVM,模型应该位于 WPF 和数据库之间。这意味着对数据库的所有调用都应该通过模型,所有对数据库的写入也应该通过模型。 WPF GUI 应该只绑定(bind)到模型。这通常意味着您的 WPF 部分主要由 XAML 代码组成。所有访问数据库的代码都应该在模型中。

    将其分开是有充分理由的。

  • 您可以在模型上编写单元测试。
  • View 模型独立于 GUI 的外观。这意味着您可以通过放入不同的组件并仅绑定(bind)到模型来轻松更改 GUI。
  • 一个快速的谷歌搜索可能会产生更多的原因。

  • 3 - 我会尝试只发送已更改的实体。这可以通过将集合传递给您的 View 模型来完成,并让您的 View 模型找出发生了什么变化。

    4 - 我不太明白你想做什么。通常,要制作 TreeView,您应该为每个 View 模型创建 HierarchicalDataTemplate。 TreeView 控件将负责其余的工作。你真的应该做一些关于这个的教程,因为这有点难以理解。

    关于WPF、WCF、Entity、MVVM的疑惑!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4494010/

    相关文章:

    c# - 如何在 WPF 应用程序的配置文件中添加连接字符串

    c# - 如何自动验证我的 View 中的所有控件是否都设置了绑定(bind)?

    c# - WCF 发现根本不起作用

    wcf - 开发可互操作的 WCF Web 服务时我应该知道什么?

    c# - LINQ 的 Count 扩展方法的 SQL 等价物并不明显

    c# - 使用 Kinect 在 InkCanvas WPF 中绘制平滑线条

    .net - 通过 HTTP 将用户名和密码以明文形式发送到 Web 服务

    .net - 我可以将 EF 实体映射到具有多态外键的两个表吗?

    sql-server - 如何使用 Entity Framework Core 进行迁移,通过 ASP.NET CORE MVC 连接到现有的 Azure SQL 数据库?

    wpf - 如何在WPF中修复用户控件(使用MVVM实现)上的集合控件中的选定项