gpt4 book ai didi

c# - 从多个表创建 LINQ 选择

转载 作者:IT王子 更新时间:2023-10-29 03:48:54 26 4
gpt4 key购买 nike

这个查询效果很好:

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();

我的“操作”字段得到了一个新类型。现在我也想检索我的“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();

例如:-)

关于c# - 从多个表创建 LINQ 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com