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