Linq 在 3 个表上具有联合

发布于 2024-12-11 16:17:31 字数 217 浏览 0 评论 0原文

我喜欢使用 linq 对 3 个表进行联合。 不知道为什么像下面这样的东西不起作用:

var repdata = (from p in db.Table1
               select p)
                       .Union(from p in Table2
                        select p);

I like to use linq to do a union on 3 tables.
Not sure why something like the following would not work:

var repdata = (from p in db.Table1
               select p)
                       .Union(from p in Table2
                        select p);

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

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

发布评论

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

评论(1

十六岁半 2024-12-18 16:17:31

Union 仅适用于相同的元素类型。您可以使用:

var data = db.Table1.Select(p => new { p.Value1, p.Value2 })
     .Union(db.Table2.Select(q => new { q.Value1, q.Value2 })
     .Union(db.Table3.Select(r => new { Value1 = r.Alias1, Value2 = r.Other }); 

这里匿名类型作为将所有三个表投影到的公共类型,以便 Union 可以工作。

Union only works with the same element type. You could use:

var data = db.Table1.Select(p => new { p.Value1, p.Value2 })
     .Union(db.Table2.Select(q => new { q.Value1, q.Value2 })
     .Union(db.Table3.Select(r => new { Value1 = r.Alias1, Value2 = r.Other }); 

Here the anonymous type serves as a common type to project all three tables onto, so that Union can work.

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