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属性的真实类型。