区块链技术博客
www.b2bchain.cn

如何在带有条件多个where条件的Entity Framework中编写查询? – c#程序员分享

本文介绍了如何在带有条件多个where条件的Entity Framework中编写查询? – c#程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我正在创建一个wcf应用程序,该应用程序连接到数据库以使用实体框架为客户获取一些数据。该概念是根据搜索参数搜索客户。用户可以提供全部或很少或至少一个搜索参数。但是我在实体框架方面还很陌生,并且对如何执行此操作感到困惑。我可以通过考虑c#端的If-Else条件,在传统的SQL编码中做到这一点。

这是我的代码,它获取了所有参数:

   var customers = from o in natCustomer.CustomerLists                     select o;      customers = customers.Where(c => c.Name == sName && c.Age == iAge         && c.Gender == sGender && c.Height == dHeight && c.Weight == dWeight                                      && c.Nationality == sNationality         && c.EyeColor == sEyeColor && c.SpecialMark == sSpecialMark); 

请通过建议如何仅使用很少或一个参数来获得结果来帮助我。
谢谢

参考方案

实体框架查询是“延迟”查询。在您开始要求结果之前,它们实际上不会运行。这意味着您可以分段构建查询,并且(大部分)它的工作原理与一个较大的查询完全相同。

就您而言,您可以执行以下操作:

var customers = from o in natCustomer.CustomerLists                 select o;  if (!string.isNullOrEmpty(sName))    customers = customers.Where(c => c.Name == sName);  if (!string.isNullOrEmpty(sNationality))    customers = customers.Where(c => c.sNationality == sNationality);  if (!string.isNullOrEmpty(SpecialMark ))    customers = customers.Where(c => c.SpecialMark == SpecialMark); 

最后,当您执行customers查询(例如,调用ToList或使用foreach循环)时,EF会将所有较小的Where子句合并为一个SQL查询,以针对您的数据。

尝试将JS &&运算符转换为C# – javascript

我有要转换为C#的JS代码。由于某种原因,我的C#方法返回的值比JS函数的返回值小10。我尝试更改多个内容并检查JS中&&运算符的含义,但似乎无法弄清楚我在做什么错。正确的返回值为97。JavaScript功能和用法:function rir(t, e, c, n) { return t > e && t <= c…

SQL Joins与Java代码? – java

我有这样的查询Select Folder.name from FROM FolderTable,ValidFolder, ValidFolderGroup, ValidUser, ValidLocation, ValidDepartment where ValidUser.LocationCode *= ValidLocation.LocationCode …

Play Framework 2中的系统类加载器 – java

我使用的是Play 2.2.2,我有一个外部jar,它试图从同一jar的根目录加载XML资源。它使用System.class.getClassLoader().getResource("/Blabla.xml")这样做。这失败了,因为显然Play拥有一个奇怪的类加载器层次结构:ReloadableClassLoader和几个父级。该层次结…

如何以编程方式将ListView滚动到最后一个元素-Compact Framework – c#

我正在使用Windows Mobile 6.1上的3.5 Compact Framework开发应用程序。我有一个ListView,添加项目时想自动滚动此列表。我能怎么做? 参考方案 listView.EnsureVisible(listView.Items.Count – 1);

SQLAlchemy中的反射不适用于MS SQL Server系统表吗? – python

我试图在MS SQL Server数据库中反映系统表:from sqlalchemy import engine, create_engine, MetaData, Table meta = MetaData() url = engine.url.URL( "mssql+pyodbc", username=credentials[&#03…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 如何在带有条件多个where条件的Entity Framework中编写查询? – c#程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们