2016-08-30 65 views
0

我有一個問題與ac#linq查詢在哪裏我使用!=運算符,它在SQL中運行良好,但是當我寫入相同的查詢C#它返回一個不同的結果,這是結果的正確方法,其中一列的列與表b列不匹配。請參閱下面的sql查詢,然後查看我的c#查詢。C#Linq查詢其中表A列不相等/不算數表B列加入

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 }; 

,因爲我想在那裏legal_name(表一)不等於legal_name(表二)SQL查詢返回正確的結果是其他表。

Linq查詢返回不正確的結果,請協助。

+0

Linq看起來不錯。你能分享快照還是虛擬數據? –

+4

sql正在執行'=' –

+0

@MB感謝您發現該錯誤,修復了它。 – Papi

回答

0

你的SQL顯示你問他們在哪裏是平等的。 LINQ顯示您詢問他們何時不相同。

1

我建議嘗試以下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(); 

以上將返回不在表2。我希望,這是你想要的。

相關問題