【问题标题】:Entity Framework & Webservice实体框架和 Web 服务
【发布时间】:2010-11-11 22:22:01
【问题描述】:

我需要一些帮助。

我有一个包含 2 个项目的解决方案。 第一个项目包括一个 Web 服务,它提供了一些方法,如 GetAllCustomers、GetCustomerByGUID 等...... 它还包含 edmx 文件,因此这些“Get”方法会泄露实体对象。

第二个项目是——此时——一个用于测试所有这些方法的控制台应用程序。 我通过网络服务接收我的对象,一切都很好,但是..

这是我的问题:

这些对象错过了每个导航属性。我的客户实体对象有一些。 在 Web 服务项目中,导航属性就在那里。

另一个奇怪的事情: 如果我在控制台中实例化 EF DataContext,我无法调用 SaveChanges 方法。它只是不存在。我知道我不应该在这一层有数据上下文的对象,但是为了测试我偶然发现了这一点。

有人知道吗?

【问题讨论】:

    标签: .net web-services frameworks entity


    【解决方案1】:

    您将很难让它按照您设计的方式工作。请记住,一旦实体被序列化并通过网络发送,您就会丢失与 DataContext 关联的所有信息。

    此外,除非您在实体框架模型中特别包含对程序集的引用并选择重用这些类型,否则您正在处理的类型只是您的 .edmx 中实际模型的代表性克隆。

    导航属性仅在实体附加到 DataContext 时才有意义,因为它处理了调用数据库和水合被请求实体的所有魔力。您实际上是从您的 Web 服务中获得了 POCO,但您尝试使用它,就好像它仍然附加到它的上下文一样。

    您要构建的是一个 N 层应用程序,因此我建议您阅读 how to do this with Entity Framework

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多