首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架6:筛选表

实体框架6:筛选表
EN

Stack Overflow用户
提问于 2014-10-15 10:49:34
回答 3查看 1.6K关注 0票数 0

我,向EF6走来。我已经理解,如果我想要一条记录,我可以使用First()方法(我认为也可以像"get“一样使用)。

但如果我想从我的桌子上收集记录呢?我的意思是,如果查询的结果可以从0到N的基数.我该怎么做?

愚蠢的例子:

名称表: SomeTable

代码语言:javascript
复制
ID    NAME    SOMEATTR
1      A       YELLOW
2      B        RED
3      C       YELLOW
4      D       YELLOW
5      E        BLUE

..。

我怎样才能得到所有someAttr是“黄色”的记录?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-15 11:24:51

使用linq & C#

代码语言:javascript
复制
private readonly myEntities db = new myEntities()
public list<SomeTable> MyRecords()
{
 return res = db.SomeTables.where(o => o.SOMEATTR == "YELLOW").ToList()
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-15 10:53:41

一旦你有了Linq查询..。

代码语言:javascript
复制
var query = (from ... in ... where ... select ...);

或者,对于你的具体例子:

代码语言:javascript
复制
var query = (from r in dbContext.MyTable where (r.someAttr == "YELLOW") select r);

您可以使用foreach迭代它,这将导致它被执行一次,然后产生结果.

代码语言:javascript
复制
foreach (var r in query)
{
}

..。或者调用ToList() (如果您想获得一个列表,以后可以多次传递、操作或检查该列表,则调用http://msdn.microsoft.com/en-us/library/vstudio/bb342261(v=vs.100).aspx)。(此列表在返回后基本上与服务器断开连接。)

代码语言:javascript
复制
var list = query.ToList()

..。或者使用它来构造像HashSet<T> (http://msdn.microsoft.com/en-us/library/bb301504(v=vs.110).aspx )这样的集合。

代码语言:javascript
复制
var set = new HashSet<T>(query)

任何这些都会导致它只在服务器上执行一次,并处理结果。

毕竟,查询本身就是IEnumerable。它也是IQueryable,所以您可以进一步操作它,然后枚举结果,如.

代码语言:javascript
复制
var sortedList = query.OrderBy(...).ToList()
票数 1
EN

Stack Overflow用户

发布于 2014-10-15 11:21:22

如果您有一个映射到SOMEATTR表的SOMEATTR类,则可以查询它:

代码语言:javascript
复制
var context = new YourDbContext();
var results = context.SomeTables.Where(x=>x.SOMEATTR == "Yellow").ToList();

//then you can iterate all results
foreach(var item in results)
{
    Console.WriteLine(item.ID + " " + item.NAME + " " + item.SOMEATTR);
}

其结果将是:

代码语言:javascript
复制
1      A       YELLOW
3      C       YELLOW
4      D       YELLOW
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26380680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档