With a few minor changes, here is the completed snippet:
var effDate = (from mp in db.Material_Price
where mp.Material_ID == id && mp.EffectiveDate <= DateTime.Now
select mp.EffectiveDate).Max();
var query = from mp in db.Material_Price
where mp.Material_ID == id
&& effDate.CompareTo(mp.EffectiveDate) == 0
select mp.Price;
Thanks Sandeep, magic!
I was hoping however that it could be done with a single statement.