Entity Framework List Contains in lambda

老子叫甜甜 提交于 2019-12-18 06:12:29

问题


I want to query items with specific IDs using. For example:

var ids = new List<int> { 1, 3, 5 };

var items = context.Items.Where(item => ids.Contains(item.ID)).ToList();

Questions:

  1. Will this generate a single query with SQL IN operator?
  2. Is this code OK in terms of performance?
  3. Are there any better ways to do it?

I am using Entity Framework 6 with Microsoft SQL Server.


回答1:


  1. Will this generate a single query with SQL IN operator?
    Yes
  2. Is this code OK in terms of performance?
    Yes (for small lists)
  3. Are there any better ways to do it?
    No (for small lists)

If the list is really big and the table is reasonably small you might get better performance bringing the complete table into memory and do an in memory join with the list.



来源:https://stackoverflow.com/questions/32745399/entity-framework-list-contains-in-lambda

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!