在Ledger Table中为新客户或现有客户获取合并者ID的查询是什么?

时间:2017-11-30 13:24:42

标签: c# mysql winforms linq linq-to-sql

这仅适用于分类帐表中的现有客户:

var i = (from u in dc.GetTable<Ledger>()
         where u.C_Id == u.Customer.Id &&
         u.Customer.Name == textBox1.Text
         select u.Id).Max();

这仅适用于分类帐表中的新客户:

var i = (from u in dc.GetTable<Ledger>()
         where u.C_Id == u.Customer.Id &&
         u.Customer.Name == textBox1.Text
         select u.Id).SingleOrDefault();
<{1}}

中发生了

System.InvalidOperationException

为Ledger Table中的新客户和现有客户提供解决方案。在这两种情况下获取Ledger Id的查询是什么。

2 个答案:

答案 0 :(得分:0)

我不确定为什么你想要最高ID,如果他们是倍数但这应该工作

var ledger = 
     dc.GetTable<Ledger>()
     .Where(l => l.C_Id == l.Customer.Id)
     .Where(l => l.Customer.Name == textBox1.Text)
     .Select(l => l.Id)
     .OrderByDescending(id => id)
     .FirstOrDefault();

答案 1 :(得分:0)

最后我得到了正确的查询!这是在Ledger表中为新客户或现有客户获取分类帐Id的查询

var i = (from w in dc.GetTable<Customer>() //customer id
         where w.Name == textBox1.Text
         select w.Id).SingleOrDefault();

int? j = dc.Ledgers.Where(x => x.C_Id == i)
                   .Max(x => (int?)x.Id);