我有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'
linq表达式Visual Studio将理解的内容。我使用实体框架。我试过这样的事
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的定义)。在此先感谢您的帮助!
你能尝试这样吗?如果尚未完成,请包含命名空间using System.Linq;
var india = context.Orders.Where(o => o.ShipCountry == "India").Select(o => o);
var usa= context.Orders.Where(o => o.ShipCountry == "USA").Select(o => o);
var IndiaUnionusa = india.Union(usa);
对于你的代码,它会像
var quer1= (from Oceny_przedmioty in dbContext.Oceny_przedmioty
select Oceny_przedmioty.ID_Studenta);
var query2 = (from Studenci in dbContext.Studenci
select Studenci.ID_Studenta);
var currentGrade = query1.Union(query2);
看起来像int的问题?可空类型
var quer1= (from Oceny_przedmioty in dbContext.Oceny_przedmioty
select Oceny_przedmioty.ID_Studenta)
.ToList();
var query2 = (from Studenci in dbContext.Studenci
select Studenci.ID_Studenta)
.ToList();
var currentGrade = query1.Union(query2);
谢谢大家的回复!问题还在于查询,这段代码解决了我所有的问题
var query1 = dbContext.Oceny_przedmioty
.Join(dbContext.Studenci,
post => post.ID_Studenta,
meta => meta.ID_Studenta,
(post, meta) => new { meta.ST_Nr_indeksu, post.OPrz_Ocena })
.Where(postAndMeta => postAndMeta.ST_Nr_indeksu == 11000);
dataGridView1.DataSource = query1.ToList();