【问题标题】:What is the right and efficient way to retrieve data using Entity Framework 6使用 Entity Framework 6 检索数据的正确有效方法是什么
【发布时间】:2017-03-10 20:28:16
【问题描述】:

我有 2 张桌子:

T1
{
  Columns: **A**, B, C
}

T2
{
  Columns: D, E, F, **A**
}

T1 使用外键(A 列)与T2 建立一对多连接。

我正在尝试检索F 的列表,以防出现A=1,B=2,E=3

检索这些数据的正确有效方法是什么?

  • 是join语句吗?
  • 是通过检索所有T1 (where A=1,B=2) 包括T2 然后循环结果(并消除不相关的T2)?
  • 其他方式?

【问题讨论】:

  • 当然使用单个数据库查询 - 使用手动连接或导航属性、where 子句和select F
  • 但是这样我会检索到很多我不使用的记录,我需要遍历结果并删除不相关的记录。
  • where 子句将在数据库内部进行过滤。 select F 将只返回所需的数据。这是最优的。不会创建任何对象。 EF 将仅将您的模型用作生成 SQL 查询的元数据。

标签: c# entity-framework entity-framework-6


【解决方案1】:
var lst = (from t1 in context.T1
        join t2 in context.T2 on t1.A equals t2.A
        where t1.A == 1 && t1.B == 2 && t2.E == 3
        select t2.F).ToList();
  • 加入表格
  • 在 where 子句中过滤
  • 只选择您感兴趣的一处房产

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    相关资源
    最近更新 更多