c# - Linq 连接与不同

标签 c# mysql asp.net-mvc linq lambda

我有两张 table 表_A

id col_A  col_B  Col_C  DataAmt  value
1   a       b       c     1       1
2   a       b       c     1       1
3   a       b       c     2       2
4   a       b       c     2       2 
5   a       b       c     2       2 

TABLE_B

id  col_A   col_B   col_C
1    a       b        c
2    a       b        c
3    a       b        c

我的 linq 查询

from table_B in db.Table_B
join table_A in db.table_A
on new
{
  col_A = table_B.col_A,
  col_B = table_B.col_B,
  col_C = table_B.col_C,
}
equals new
{
  col_A = table_A.col_A,
  col_B = table_A.col_B,
  col_C = table_A.col_C,
}
select table_A

在我的 for i 中有两个字段,一个用于 Value_AValue_B
使用三个列从表 B 查询到表 A。我必须区分 col_Acol_Bcol_CDataAmt,即来自 value< 的值/strong> TABLE_A 中大于 1 的 col 应放置在字段 Value_A 中,其他字段应放置在 Value_B 中。
我不能接受不同的值(value)观和值(value)观的分离。

最佳答案

也许像这样,根据需要更改 select 子句:

(from table_B in db.Table_B
join table_A in db.table_A
on new
{
  col_A = table_B.col_A,
  col_B = table_B.col_B,
  col_C = table_B.col_C,
}
equals new
{
  col_A = table_A.col_A,
  col_B = table_A.col_B,
  col_C = table_A.col_C,
}
select new 
{
   col_A = table_A.value > 1 ? table_A.value : table_A.col_A,
   col_B = table_A.value > 1 ? table_A.Col_B : table_A.value: ,
   col_C = table_A.col_C,
   DataAmt = table_A.DataAmt
}).Distinct();

关于c# - Linq 连接与不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39523905/

相关文章:

c# - HttpCookie.Name 是否与 Response.Cookies[string] 中的字符串相同?

c# - 为什么 IsAssignableFrom 在将可空值与接口(interface)进行比较时返回 false?

c# - 从一台电脑复制到另一台电脑后,WebService (.asmx) 功能未显示

mysql - 如何从每组行的最小和最大时间戳中选择mysql数据

php - 我怎样才能结合这个查询?

asp.net - Razor 基本类型/带有 "using"关键字的模板化 Razor 委托(delegate)

c# - 如何从 SharedSource.resx 和 ViewModel.resx 本地化 DataAnnotations

php - 为什么会 print_r ($row);只返回数字 1?

asp.net - 具有 Specflow 和模拟浏览器行为的 BDD

c# - 用户似乎没有在 dotnet core 2.0 中的“Use”管道中进行身份验证