【问题标题】:How to load Foreign key referenced tables data also in entity framework如何在实体框架中加载外键引用的表数据
【发布时间】:2010-05-03 05:46:44
【问题描述】:

我在 4.0 中开发了实体框架 (.edmx) 应用程序,因为我获得了查询表的所有数据及其外键引用的表数据。但是当我将项目更改为 3.5 时,我无法获取外键引用表数据的数据。请帮帮我...

【问题讨论】:

    标签: asp.net entity-framework linq-to-entities dynamic-data


    【解决方案1】:

    在 EF4 中包含延迟加载,并且默认情况下处于启用状态。

    在以前的版本中没有这样的运气:您可能需要添加一个 .Include() 来自动获取其他数据(急切加载)或在引用上调用 Load() 以加载它们(手动)。

    如果参考表是“详细信息”,你会这样做......

    var featuredOffers = context.Hosters_FeaturedOffer.Include("Details").ToList();
    

    http://msdn.microsoft.com/en-us/library/bb896272.aspx

    顺便说一句:也搜索“强类型包含” - 人们编写了一些扩展方法来删除魔术字符串并将其替换为经过编译时检查的 lambda 表达式。

    【讨论】:

    • 感谢 Hightechrider,您能帮我了解在我的代码中添加 .include() 的位置或如何调用 Load() 方法。下面是我的示例 Query var result = from e in context.Hosters_FeaturedOffer select e; List featuresOffers = result.ToList();
    • 非常感谢 Hightechrider...您节省了我的时间..您还可以提供一些关于您正在谈论的扩展方法的信息/链接吗?
    【解决方案2】:

    如果您使用的是较新版本的 EF,请参考未来的答案;

     var o = db.Order.Include(i => i.User).Include(i => i.OrderItem).FirstOrDefault(x=>x.OrderId == orderId);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2013-11-04
      相关资源
      最近更新 更多