Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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#_.net_Linq - Fatal编程技术网

C# linq查询和选择语句

C# linq查询和选择语句,c#,.net,linq,C#,.net,Linq,我一直在跟踪林克 var data = repository.FindAll().Where(x => x.Country.ID == ID).ToList(); var serializedData = (from c in data select new { ID = c.ID, Name = c.Name }); 如何将此序列化数据查询与第一个查询简化(组合)?首先,您几乎肯定应该摆脱ToList()调用,这样选择部分将转换为SQL,并避免拉取不必要的数据。您可以在查询表达式中

我一直在跟踪林克

 var data = repository.FindAll().Where(x => x.Country.ID == ID).ToList();
 var serializedData = (from c in data select new { ID = c.ID, Name = c.Name });

如何将此序列化数据查询与第一个查询简化(组合)?

首先,您几乎肯定应该摆脱
ToList()
调用,这样选择部分将转换为SQL,并避免拉取不必要的数据。您可以在查询表达式中完成整个操作:

var serializedData = from x in repository.FindAll()
                     where x.Country.ID == ID
                     select new { x.ID, x.Name };

请注意,如果
FindAll()
返回的是
IEnumerable
而不是
IQueryable
,则应查看是否有另一个方法返回适当的
IQueryable
——否则将从数据库中获取整个表。(至少,我假设涉及到一个数据库……您没有给我们提供太多的上下文。)

好吧,首先,您几乎肯定应该摆脱
ToList()
调用-这样,选择部分将转换为SQL并避免提取不必要的数据。您可以在查询表达式中完成整个操作:

var serializedData = from x in repository.FindAll()
                     where x.Country.ID == ID
                     select new { x.ID, x.Name };
请注意,如果
FindAll()
返回的是
IEnumerable
而不是
IQueryable
,则应查看是否有另一个方法返回适当的
IQueryable
——否则将从数据库中获取整个表。(至少,我认为这涉及到一个数据库……您没有给我们提供太多的上下文。)

应该这样做

 var serializedData = repository.FindAll().Where(x => x.Country.ID == ID).Select( c => new { ID = c.ID, Name = c.Name }).ToList()
那就够了

 var serializedData = repository.FindAll().Where(x => x.Country.ID == ID).Select( c => new { ID = c.ID, Name = c.Name }).ToList()
使用以下命令:

var serializedData = repository.FindAll().where(x=>x.CountryID == ID)
                               .Select(c=>new { c.ID ,c.Name }).ToList();
使用以下命令:

var serializedData = repository.FindAll().where(x=>x.CountryID == ID)
                               .Select(c=>new { c.ID ,c.Name }).ToList();

我想你忘了问题中的一个词我想你忘了问题中的一个词我有一种感觉
FindAll
返回一个
IEnumerable
而不是
IQueryable
我有一种感觉
FindAll
返回一个
IEnumerable
而不是
IQueryable