gpt4 book ai didi

c# - 如何将 linq 查询转换为对象 IEnumerable 模块类类型?

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

我正在使用如下所示的 linq 查询

var result = from posts in repository.JobPosts
orderby posts.PostDate descending
select posts;

我有一个属性类 JobPost,它具有与上面查询中的表相同的列名和列数。我使用如下所示的 JobPost 类类型的方法创建了另一个模块类

 public class MainPageModel
{
public IEnumerable<JobPost> jobPost { get; set; }
public SearchTerms searchTerms { get; set; }
}

我的 JobPost 是另一个模块/属性类,与上面的 JobPosts 表具有相同的行。考虑到两者属于同一列,我试图将我的查询结果直接转换为我的模块。我将查询修改为

IEnumerable<JobPost> res =(IEnumerable<JobPost>)
(from posts in repository.JobPosts
orderby posts.PostDate descending
select posts) ;

我上面的 linq 返回了行查询

SELECT 
*
FROM [dbo].[JobPosts] AS [Extent1]
ORDER BY [Extent1].[Id] ASC

有什么方法可以返回我的查询结果(即行)并将它们转换为我的 IEnumerable 类,因为它们属于相同的列。

如有任何帮助,我们将不胜感激。

编辑

我计划使用如下结果查询填充我的类。

 MainPageModel model = new MainPageModel
{
jobPost = res,
searchTerms = search
};

最佳答案

仅仅因为它们具有相同的属性,并不意味着您可以从一个转换为另一个。至少您必须明确映射这些属性:

IEnumerable<JobPost> res =(IEnumerable<JobPost>)
(from posts in repository.JobPosts
orderby posts.PostDate descending
select new JobPost{
Field1 = posts.Field1,
Field2 = posts.Field2,
}) ;

你可能想看看AutoMapper同样,因为它简化了(有一些开销!)这种任务

关于c# - 如何将 linq 查询转换为对象 IEnumerable 模块类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483288/

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