Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在LINQ中初始化新对象时出现问题_C#_Linq To Entities - Fatal编程技术网

C# 在LINQ中初始化新对象时出现问题

C# 在LINQ中初始化新对象时出现问题,c#,linq-to-entities,C#,Linq To Entities,此代码生成时没有问题,但执行时失败: var query = _db.STEWARDSHIP .OrderByDescending(r => r.VisitDate) .Where(r => SiteId == null || r.SiteAssoc.Id == iSiteId) .Where(r => r.MarkedForDeletion == false) .Select(r => new Se

此代码生成时没有问题,但执行时失败:

var query =
    _db.STEWARDSHIP
        .OrderByDescending(r => r.VisitDate)
        .Where(r => SiteId == null || r.SiteAssoc.Id == iSiteId)
        .Where(r => r.MarkedForDeletion == false)
        .Select(r => new SearchResults(r.Id, 
                                       r.SiteAssoc.Name, 
                                       r.VisitDate, 
                                       r.VisitTypeValAssoc.Description));
错误消息是:

LINQ to实体中只支持无参数构造函数和初始值设定项。

我做错了什么?我必须将信息传递给构造函数以构建SearchResults对象。有没有办法做到这一点,或者我必须让这成为一个两步的事情,在那里我得到结果,然后迭代结果来创建新的对象

更新:

将“选择”更改为此可修复此问题:

 .Select(r => new SearchResults(){Id = r.Id, 
                                 Name = r.SiteAssoc.Name, 
                                 VisitDate = r.VisitDate, 
                                 VisitType = r.VisitTypeValAssoc.Description});
试试这个

 .OrderByDescending(r => r.VisitDate)
        .Where(r => SiteId == null || r.SiteAssoc.Id == iSiteId)
        .Where(r => r.MarkedForDeletion == false)
        .Select(r => new SearchResults()
                                       {
                                       ID = Ir.Id, 
                                       Name = r.SiteAssoc.Name, 
                                       VisitDate = r.VisitDate, 
                                       Description = r.VisitTypeValAssoc.Description
                                       });
实体可以在查询之外创建并插入到数据中 使用DataContext存储。然后可以使用查询检索它们。 但是,不能在查询中创建实体

看到这个帖子了吗


LINQ不允许在select语句中显式构造对象。

Haris,这不起作用,我得到的Id、名称等在当前上下文中不存在。您应该将
Id
Name
等替换为
SeachResults
类的实际属性名感谢链接。在查看答案时,我看到:
c=>newattachmentculture{Culture=c}