From what I understand you should be querying for all objects with an expiry date within the next 2 months.
I would write the query as follows -
var query = (from b
where b.Machine_Exp_Date >= DateTime.Now &&
b.Machine_Exp_Date <= DateTime.Now.AddMonths(2)
This would give you all the objects that expire within the next 2 months and would continue to return the object till you reach the expiry date.
Hope this is what you want.
Do get back in case you need further assistance.
Check out the latest announcement
about Telerik Data Access vNext as a powerful framework
able to solve core development problems.