Приведенный ниже код будет работать для "linq to entity". Данные должны находиться в памяти, сделанной с помощью .ToArray (), для того, чтобы с ними можно было работать, если говорить проще.
XElement xml = new XElement("companies",
from company in db.CustomerCompanies.AsEnumerable()
orderby company.CompanyName
select new XElement("company",
new XAttribute("CompanyId", company.CompanyId),
new XElement("CompanyName", company.CompanyName),
new XElement("SapNumber", company.SapNumber),
new XElement("RootCompanyId", company.RootCompanyId),
new XElement("ParentCompanyId", company.ParentCompanyId)
)
);