如何将 SQL 转录为 LINQ

发布于 2024-08-24 06:46:28 字数 184 浏览 5 评论 0原文

select * form autor 
   inner join (carte inner join carte_autor using id_carte) 
   using id_autor
   group by id_autor;

我如何使用 LINQ 编写此代码?

谢谢。

select * form autor 
   inner join (carte inner join carte_autor using id_carte) 
   using id_autor
   group by id_autor;

How can I write this using LINQ?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

行雁书 2024-08-31 06:46:28

如果您使用设计器创建 DataContext 并正确定义了外键,则这些外键应显示为实体类(Entity 或 EntitySet)上的属性,具体取决于它是 1-1 还是 1-many。如果没有分配外键,您还可以在设计器中定义关系。

否则,您可以执行以下操作:

var carteAutors = db.Carte.Join( db.CarteAutor, (o,i) => o.ID_Carte == i.ID_Carte )
                    .Select( (o,i) => new { ID_Autor = i.ID_Autor, ...et al... } );

var q = db.Autors
          .Join( carteAutors, (o,i) => o.ID_Autor == i.ID_Autor )
          .Select( (o,i) => new { ID_Autor = o.ID_Autor, ...et al... )
          .GroupBy( a => a.ID_Autor );

请注意,这将选择匿名类型。我发现通常在进行联接时,我最终会选择属性的子集为匿名(或有时命名)类型,而不是构成联接的实际实体。这就是为什么我以这种方式展示它。当然,您可以保留完整的对象并相应地调整选择/分组依据。

If you're creating the DataContext using the designer and have foreign keys defined appropriately, these should show up as properties on your entity classes, either Entity or EntitySet, depending on whether it is 1-1 or 1-many. You can also define the relationships in the designer if you don't have foreign keys assigned.

Otherwise, you can do something like:

var carteAutors = db.Carte.Join( db.CarteAutor, (o,i) => o.ID_Carte == i.ID_Carte )
                    .Select( (o,i) => new { ID_Autor = i.ID_Autor, ...et al... } );

var q = db.Autors
          .Join( carteAutors, (o,i) => o.ID_Autor == i.ID_Autor )
          .Select( (o,i) => new { ID_Autor = o.ID_Autor, ...et al... )
          .GroupBy( a => a.ID_Autor );

Note that this will select out an anonymous type. I find that generally when doing a join I end up selecting a subset of properties into an anonymous (or sometimes named) type, not the actual entities comprising the join. That's why I've shown it this way. You can, of course, keep the full objects around and adjust the select/groupby accordingly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文