【问题标题】:Select whole first table, and overwrite one column with joined table选择整个第一个表,并用连接表覆盖一列
【发布时间】:2015-03-07 17:46:02
【问题描述】:

加入前我的查询

var data = (from k in db.odbiorca 
where k.idodbiorca == 49
select k).FirstOrDefault();

这让我可以使用
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,覆盖旧的。

select new { } 并一一写下我想要的所有列,这对我来说不是一个好的解决方案(还有一些列,但我只是为了示例而对其进行了简化)

我需要什么

~ select k AND number = u.number

现在想想,它只会从新表中选择一个数字,我有点需要它们。

如果你不得不问,我确实尝试过寻找解决方案,但失败了,或者我的问题问错了......

【问题讨论】:

    标签: c# mysql database linq join


    【解决方案1】:

    你好近啊……

    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 属性。
    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2017-09-19
    相关资源
    最近更新 更多