У меня была та же проблема, когда мой charge_codes.CompanyId был обнуляемым, но мой order_items.CompanyId НЕ обнулялся.
Таким образом, я должен был получить свои коды зарядов в их собственном аномном типе и сделать так, чтобы они не обнулялись.
var chargeCodes = from s in db.Charge_Codes
where s.CompanyID != null
select new { CompanyID = (int)s.CompanyID,
Charge_CodeID = s.Charge_CodeID,
Revenue_Code_Id = (int)s.Revenue_CodeID, };
//now my chargeCodes contains an anonymous with a non nullable CompanyID and
//a non nullable Revenue_CodeID
//use chargeCodes here
var query = from oi in db.Order_Items
join cc in chargeCodes on
new {oi.CompanyID, oi.Charge_CodeID} equals new {cc.CompanyID, cc.Charge_CodeID}