我正在使用如下所示的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是另一个模块/ propery类,其行数与上面的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
};
答案 0 :(得分:3)
仅仅因为它们具有相同的属性,并不意味着你可以从一个属性转换为另一个属性。至少,您必须明确地映射这些属性:
IEnumerable<JobPost> res =(IEnumerable<JobPost>)
(from posts in repository.JobPosts
orderby posts.PostDate descending
select new JobPost{
Field1 = posts.Field1,
Field2 = posts.Field2,
}) ;
您也可以查看AutoMapper,因为它简化了(有一些开销!)这类任务
答案 1 :(得分:0)
您可以使用ExecuteQuery直接查询数据库:
IEnumerable<JobPost> res = repository.ExecuteQuery<JobPost>("SELECT * FROM JobPosts ORDER BY Id");