C# 选择整个第一个表,并用联接表覆盖一列
加入前我的查询C# 选择整个第一个表,并用联接表覆盖一列,c#,mysql,database,linq,join,C#,Mysql,Database,Linq,Join,加入前我的查询 var data = (from k in db.odbiorca where k.idodbiorca == 49 select k).FirstOrDefault(); ~ select k AND number = u.number 这让我可以使用 data.idodbiorca,data.name,data.lastname,data.number 但是,number列不再使用,因为这些列已被移动到新表中,这样我就可以为db.odbiorca的每一行分配多个numb
var data = (from k in db.odbiorca
where k.idodbiorca == 49
select k).FirstOrDefault();
~ select k AND number = u.number
这让我可以使用data.idodbiorca,data.name,data.lastname,data.number
但是,
number
列不再使用,因为这些列已被移动到新表中,这样我就可以为db.odbiorca
的每一行分配多个number
我尝试加入这些表的尝试
var data = (from k in db.odbiorca
join u in db.umowy on k.idodbiorca equals u.id_odbiorcy
where k.idodbiorca == 49
select k).FirstOrDefault();
但这使我仍然只选择了k
表,我需要整个k(db.odbiorca)
表和u(db.umowy)
表中的一列number
,覆盖旧表
编写selectnew{}
并逐个编写我想要的所有列对我来说不是一个好的解决方案(这里没有更多的列,但我只是为了示例而简化了它)
我需要什么
var data = (from k in db.odbiorca
where k.idodbiorca == 49
select k).FirstOrDefault();
~ select k AND number = u.number
现在想想,它只会从新表中选择一个数字,我需要所有的数字
如果你一定要问,我确实尝试过寻找解决方案,但失败了,或者我问错了问题……你太接近了
var data = (from k in db.odbiorca.Where(o=>o.idodbiorca == 49)
join u in db.umowy on k.idodbiorca equals u.id_odbiorcy
select {k, u.numer}).FirstOrDefault();
这将生成一个匿名类型,但不是覆盖one属性的真实类型。