这个查询效果很好:
var pageObject = (from op in db.ObjectPermissions
join pg in db.Pages on op.ObjectPermissionName equals page.PageName
where pg.PageID == page.PageID
select op)
.SingleOrDefault();
我得到了一个带有“op”字段的新类型。现在我也想检索我的“pg”字段,但是
select op, pg).SingleOrDefault();
不起作用。
如何从两个表中选择所有内容,以便它们出现在我的新 pageObject 类型中?
您可以为此使用匿名类型,即:
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,因此据我所知,您将无法将其传递给其他方法,但是如果您只是获取数据以在当前所在的方法中使用,那就完全没问题了。您还可以在匿名类型中命名属性,即:-
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();
例如 :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)