【问题标题】:EntityFramework WCF issueEntityFramework WCF 问题
【发布时间】:2010-12-09 20:09:48
【问题描述】:

现在我正在做一些涉及 entityFramework 和 WCF 的测试。据我了解,生成的 EntityObjects 是 DataContracts,因此可以将它们序列化到客户端。

在我的示例中,我有一个“国家/地区”实体,该实体具有 1 个“货币”作为属性,当我获取国家/地区并尝试将其发送给客户端时,它会引发异常,指出无法写入数据。

但是,问题是,如果我得到一个货币(它有一个国家的集合)并且不加载它的国家,它确实有效。客户端获取所有实体。

所以,总结一下:

  • 我有一个实体,另一个实体作为属性,无法序列化。
  • 我有另一个具有空属性列表的实体,它已成功序列化。

关于如何使它工作的任何想法?

【问题讨论】:

    标签: wcf entity-framework


    【解决方案1】:

    默认情况下,实体框架不会自动加载关联实体,例如如果您加载“国家”实体,默认情况下,除非您执行某些操作,否则不会加载关联的“货币”。

    您需要做的是在您的 EF 查询中执行 .Include("Currency"),或者手动加载关联的 Currency 属性。这是1:1的关系,对吧?在这种情况下,您的 Country 实体很可能包含一个名为 CurrencyReference 的成员,您可以检查它是否已加载,如果没有,您可以手动加载关联的实体:

    if(!myCountry.CurrencyReference.IsLoaded)
    {
       myCountry.CurrencyReference.Load();
    }
    

    当您这样做,然后序列化要通过 WCF 发送的对象时 - 现在可以工作了吗?

    马克

    【讨论】:

    • 我认为他是说只有在他加载和实体并尝试发送它时才会发生......
    猜你喜欢
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2020-02-08
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多