【问题标题】:Joining 2 Table on 2 Equals Column in ASP.NET在 ASP.NET 中的 2 个等于列上连接 2 个表
【发布时间】:2019-01-18 08:38:36
【问题描述】:

请帮我修复我的代码以加入 2 个表但 2 个等于。 我有 2 个表(Transaction 和 Chartaccount)

Chartaccount Table
+---------+--------+
|KodeAkun |NamaAkun|
+---------+--------+
|10000    |Asset   |
|20000    |Expense |
|30000    |Revenue |
+------------------+

Transaction Table
+---------+--------+---------+-------+
|KodeAkunD| DEBIT  |KodeAkunK|KREDIT |
+---------+--------+---------+-------+
|10000    |10000   |20000    |0      |
+------------------+---------+-------+

在我的模型中

Chartaccount Model
public string KodeAkun {get; set;}
public string NamaAkun {get; set;}
public decimal Saldo {get; set;}

Transaction Model
public string KodeAkunD {get; set;}
public string KodeAkunK {get; set;}
public decimal Debit {get; set;}
public decimal Kredit {get; set;}
public string Keterangan {get; set;}

在我的控制器中

public IActionResult Index()
{
var transaction1 = from p in _context.Transaction join k in _context.ChartAccount on p.KodeakunD equals k.Kodeakun
                           select new Transaction {
                           KodeakunD = p.KodeakunD + k.Namaakun,
                           KodeakunK = p.KodeakunK + k.Namaakun};          
return View(transaction1);
}

目前在我看来

+-----------+--------+----------+-------+-------------------+
|KodeAkunD  | DEBIT  |KodeAkunK |KREDIT |Action             |
+-----------+--------+----------+-------+-------------------+
|10000Asset |10000   |20000Asset|0      |Edit,Details,Delete|
+-----------+--------+----------+-------+-------------------+

我想要什么

+-----------+--------+------------+-------+-------------------+
|KodeAkunD  | DEBIT  |KodeAkunK   |KREDIT |Action             |
+-----------+--------+------------+-------+-------------------+
|10000Asset |10000   |20000Expense|0      |Edit,Details,Delete|
+-----------+--------+------------+-------+-------------------+

而且,如果我加入控制器,我的动作不会正确路由,如果我点击我的动作,它会返回 404

【问题讨论】:

  • 它似乎按预期工作
  • 它可以工作,但不能按我的预期工作:D

标签: asp.net


【解决方案1】:

你的问题出在这一行

KodeakunK = p.KodeakunK + k.Namaakun

p.KodeakunK= 2000,但您在 p.KodeakunD 上加入了表,这是 1000 的连接线,导致“资产”。

您需要通过 Chartaccount 单独加入 KodeakunK 和 KodeakunD。 您可以执行两个不同的连接作为替代,或者您应该使用 linq 多个连接。

LINQ to Entity : Multiple join conditions 的可能重复项

Linq multiple join conditions using extra variables

LINQ multiple joins with multiple conditions

How to do joins in LINQ on multiple fields in single join

这些可以帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2014-05-03
    • 2021-11-02
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多