Вы можете использовать анонимные типы для этого, т.е.
var pageObject = (from op in db.ObjectPermissions
join pg in db.Pages on op.ObjectPermissionName equals page.PageName
where pg.PageID == page.PageID
select new { pg, op }).SingleOrDefault();
Это сделает pageObject в IEnumerable анонимного типа, так что AFAIK, вы не сможете передать его другим методам, однако, если вы просто получаете данные для воспроизведения в методе, который вы используете прекрасно. Вы также можете называть свойства в своем анонимном типе, т.е.
var pageObject = (from op in db.ObjectPermissions
join pg in db.Pages on op.ObjectPermissionName equals page.PageName
where pg.PageID == page.PageID
select new
{
PermissionName = pg,
ObjectPermission = op
}).SingleOrDefault();
Это позволит вам сказать: -
if (pageObject.PermissionName.FooBar == "golden goose") Application.Exit();
Например: -)