I am writing a query to find the sum of an integer value from a database using linq. while I was developing, I had two thoughts. I can either do this, or fill in, or an inner join. The following are the requests
var Customer = db.tbl_User_to_CustomerMast.Where(i => i.fk_Store_ID == s.ShopID).ToList();
Request 1:
var RewardCount = db.tbl_RewardAwardMast.Where(i => Customer.Select(j => j.User_Customer_ID).ToList().Contains(i.fk_Customer_UserID.Value)).Sum(i => i.RewardPoints).GetValueOrDefault(0);
Request 2:
var RewardCount = Customer.Join(db.tbl_RewardAwardMast, i => i.User_Customer_ID, j => j.fk_Customer_UserID, (i, j) => new { Customer = i, Reward = j }).Sum(i=>i.Reward.RewardPoints).GetValueOrDefault(0);
I know that in both requests a server-side calculation will be performed to match records.
So, which query is suitable for faster execution?
source
share