簡體   English   中英

C#Linq查詢,其中表A列不相等/沒有數學表B列聯接

[英]C# Linq query where Table A column is not equal/doesnt math Table B column join

我在使用!=運算符的ac#linq查詢中遇到問題,它在SQL中運行良好,但是當我在C#中編寫相同的查詢時,它會返回不同的結果,這是在表列中顯示結果的正確方法與表b列不匹配。 請在下面查看我的sql查詢,然后查看我的c#查詢。

SELECT tba.ID,fa.accountnumber,tba.Account_Number,fa.new_legalname,tba.Legal_Name,fa.new_deliverystatusname, fa.new_deliverystatus,tba.Delivery_Charge
      FROM [CRM_Embrace_Integration].[dbo].[CRM_Tarsus_Debtors_Accounts] tba
      inner join CRM_MBT_GROUP.dbo.FilteredAccount fa
      ON fa.accountnumber collate database_default   = tba.Account_Number
      where fa.new_legalname collate database_default != tba.Legal_Name

和Linq查詢看起來像這樣

var sqlJoinQuery = from accCRM in todaysCRMAccounts
                                   join accSQL in todaysCRMViewAccounts
                                   on accCRM.Account_Number equals accSQL.accountnumber
                                   where accCRM.Legal_Name != accSQL.new_legalname
                                   select new { accCRM.Legal_Name, accSQL.new_legalname };

SQL查詢返回正確的結果,因為我希望其中legal_name(表A)不等於legal_name(表B)是另一個表。

Linq查詢返回錯誤結果,請協助。

我建議嘗試以下Linq,以獲取表2中未包含的數據:

var result1 = (from m in db1.Table1
               select m).ToList();

var result2 = (from m in db2.Table2
               select m).ToList(); 

var finalResult = (from m in result1
                   where !(from k in result2
                   select k.Id).Contains(m.Id)
                   select m).ToList();

以上將返回Table2中沒有的內容。 希望這就是您想要的。

您的SQL會顯示您要求它們相等的地方。 LINQ顯示您詢問何時不相等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM