如何在实体框架中加入

Posted

技术标签:

【中文标题】如何在实体框架中加入【英文标题】:how to do a Join in Entity Framework 【发布时间】:2011-07-17 22:17:39 【问题描述】:

除了编写 linq 查询之外,有没有一种方法可以通过简单地执行以下操作来进行连接:

using (var db = new MatchGamingEntities())

    db.Accounts.Join() //I am unsure of the syntax
    db.Accounts.Include...
    ...

    return View(Account.SingleOrDefault());

我想用这些预定义的Entity函数而不是写linq,实用吗?另外,您如何使用这些预定义的功能?我有一个名为“Accounts”和“BankTransactions”的表,它们都有共同的 AccountId,我将如何使用这些函数查询它以及它将返回其一对多关系的结果类型。

【问题讨论】:

【参考方案1】:

LINQ 确实是您更好的选择,Lambda 的速度非常快,而 linq 的结构化方式看起来比 lambda 好很多

查看此 SO 帖子:

C# Joins/Where with Linq and Lambda

var query = db.Accounts.Join(db.BankTransactions,
     acc => acc.AccountID,
     bank => bank.AccountID,
     (acc,bank) => new  Account = acc, BankTransaction = bank );

编辑: 这应该(或类似的东西)返回一个查询,该查询将返回一个帐户集合,并且在每个帐户中它是相关的 BankTransaction。

应该这样做,但如果可能的话,宁愿使用 LINQ。

编辑:作为事后的想法,您可以在上面添加额外的 Lamba 扩展,例如 where 子句。

【讨论】:

以上是关于如何在实体框架中加入的主要内容,如果未能解决你的问题,请参考以下文章

在实体框架中加入 3 个一对多表

如何在typeorm中加入树结构中的每个子实体

如何在 C# Web API 中加入两个表

如何在 symfony 5 中加入两个表?

如何在 R2DBC 和 Spring WebFlux 中加入多个表?

如何在 Spring JPA 存储库中加入多个表的结果