gpt4 book ai didi

c# - 如何使用 lambda 表达式将 IQueryable 转换/转换为 IQueryable

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:34 26 4
gpt4 key购买 nike

这是我想要实现的:

 int id = 1;
var db = new Project.Models.Context();
var query1 = db.Users.Where(t => t.id == id);
//here is where the problem starts
IQueryable<Project.Models.test> test = query1.Join(db.Table2,
users => users.id,
table2 => table2.userId,
(users, table2) => new
{
users.UserName,
table2.SomeValue
});

到目前为止我已经尝试过:

-将 query1 转换为

(IQueryable<Project.Models.test>)query1

-在关键字new处添加严格输入的名称:

 (users, table2) => new IQueryable<Project.Models.test>) ...

(users, table2) => new Project.Models.test ...

-命名列 (users, table2) => 新建 { ColumnName1 = users.用户名, ColumnName2 = table2.SomeValue });

-以上的组合

我也知道有一种方法可以使用普通的 sql 表达式来解决这个问题:

 select new Project.Models.test 
{
ColumnName1 = users.UserName,
ColumnName2 = table2.SomeValue
}

但如果可能的话,我想用 lambda 表达式来写。

我是第一次张贴者和长期读者,希望所有内容都写得正确清晰。

ps:我还冒昧地简化了变量名和连接查询。

编辑:

为了完成:将查询保存在匿名变量 joinedTable 中,然后执行“插入”语句。

IQueryable<Project.Models.test> tst = from a in joinedTable
select new Project.Models.test
{
UserName = a.UserName,
SomeValue = a.SomeValue
};

如果可以用 lambda 表达式编写上述语句,那么一个子问题就是。

最佳答案

你是这个意思吗?

    IQueryable<Project.Models.test> query =
from u in db.Users
join t in db.Table2 on u.id equals t.userId
where u.id == id
select new Project.Models.test
{
UserName = u.UserName,
SomeValue = t.SomeValue
};

关于c# - 如何使用 lambda 表达式将 IQueryable<Anonymous Type> 转换/转换为 IQueryable<Strongly Typed Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27468257/

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