【发布时间】:2017-12-19 18:13:25
【问题描述】:
我有 2 张桌子:Oceny_przedmioty 和 Studenci。 Studenci 和 Oceny_przedmioty 是一对多的连接(一个学生可以有超过 1 个等级)。我需要从这个 SQL 中生成:
SELECT Oprz_Ocena
FROM Oceny_przedmioty
UNION SELECT ST_Nr_indeksu
FROM Studenci
WHERE ST_Nr_indeksu = '11000'
Visual Studio 能理解的linq 表达式。我使用实体框架。 我试过这样的东西
var currentGrade= (from Oceny_przedmioty in dbContext.Oceny_przedmioty
select Oceny_przedmioty.ID_Studenta).Union
(from Studenci in dbContext.Studenci
select Studenci.ID_Studenta);
但它甚至不识别 Union(不包含 Union 的定义)。提前感谢您的帮助!
【问题讨论】:
-
您的代码 sn-p 看起来不错。确保您有
using System.Linq;以便使用 .Union() 函数 -
这对你有用吗??
-
嗨!我正在使用 System.Linq,我有这个问题:“'IQueryable
' 不包含 'Union 的定义和最佳扩展方法重载 'ParallelEnumerable.Union (ParallelQuery , IEnumerable)' 需要类型为“ParallelQuery ”的接收器。 -
看起来
Oceny_przedmioty.ID_Studenta类型是int?(可为空的 int),而Studenci.ID_Studenta只是int。Union的部分必须具有相同的元素类型。为什么不选择与您的 SQL 查询对应的字段(似乎是strings)。 -
用
select Oceny_przedmioty.ID_Studenta.Value替换select Oceny_przedmioty.ID_Studenta
标签: c# sql-server visual-studio entity-framework linq