我有以下SQL语句在C#中转换为LINQ。 @amount
变量将是一个C#变量。将此SQL转换为LINQ
DECLARE @amount DECIMAL(20,2)
SET @amount = 120.30
UPDATE INVOICES SET AmtPaid = AmtPaid + @amount WHERE InvoiceNum = 'AC0000034550'
我有以下SQL语句在C#中转换为LINQ。 @amount
变量将是一个C#变量。将此SQL转换为LINQ
DECLARE @amount DECIMAL(20,2)
SET @amount = 120.30
UPDATE INVOICES SET AmtPaid = AmtPaid + @amount WHERE InvoiceNum = 'AC0000034550'
为什么不用linq选择一个然后迭代列表并更新变量?
LINQ没有做更新,所以你不能在SQL转换为LINQ
您不能UPDATE
与LINQ。
LINQ是查询引擎,适用于SELECT
(如果我们谈论原始SQL)。
另外,如果你已经有很好的工作SQL代码,它没有任何意义把它转换成LINQ; SQL更快,而且工作。
我做了如下。不知道它是否正确:
using (var dataContext = GetDataContext())
{
var invoiceData = from i in dataContext.Invoices
where i.InvoiceNumber == paymentData.InvoiceNumber
select i;
foreach(var invoice in invoiceData)
{
decimal outPut;
if (Decimal.TryParse(paymentData.AmountPaid, out outPut))
{
invoice.AmtPaid = invoice.AmtPaid + Convert.ToDecimal(paymentData.AmountPaid);
}
}
dataContext.SubmitChanges();
}
我测试了上面的代码,它工作正常! – user466663
您是否使用LINQ to SQL或实体框架? – Lee