如何从IQueryable中检索不同的对象类型

本文关键字:对象 类型 检索 IQueryable | 更新日期: 2023-09-27 18:02:58

我首先使用实体框架5代码。我有以下查询,返回2个不同的对象:

var query = (from s in DatabaseContext.Servers
             join c in DatabaseContext.CommandExecutionServers on s.Domain equals c.Domain
             where s.Id == serverId && c.Active == active
             select new { s, c });

s是Server class, c是CEServer class

我如何从查询中检索s和c对象,因为我需要使用它们。我需要这样的内容:

Server server = s;  // first check for nulls and
server.CEServer = c;  // check for nulls as well

如何从IQueryable中检索不同的对象类型

如果你确定你只会得到一对,你可以使用这个:

Server server = query.Single().s;  // first check for nulls and
server.CEServer = query.Single().c;

如果没有,你会得到异常

由于您的查询返回匿名类的对象序列,您可以枚举您的查询,并从每个返回的行访问sc,如下所示:

foreach (var row in query) {
    Server s = row.s;
    // Check the server...
    CEServer c = row.c;
    // Use CEServer...
}