当前位置:首页 > Web开发 > 正文

EF盘问(Lambda的用法)(18)

2024-03-31 Web开发

使用数据库:NorthWind示例数据库 (链接:https://www.cnblogs.com/liverpool/p/4718042.html)

后台代码:

namespace T1_EF.Controllers { public class CustomersController : Controller { // GET: Customers public ActionResult Index() { //NorthwindEntities northwind = new NorthwindEntities(); //var list = northwind.Customers.Select(c =>c); //建议使用下面这种写法,面向抽象编程,,使用多态,并且更灵活 //DbContext dbContext = new NorthwindEntities(); //var list = dbContext.Set<Customers>().Select(c => c); //使用Linq操练操纵 dynamic list; DbContext db = new NorthwindEntities(); //根基盘问 //list = from customer in db.Set<Customers>() select customer; //单条件盘问 //list = from customer in db.Set<Customers>() where customer.Country == "USA" select customer; //多条件盘问 //list = from customer in db.Set<Customers>() // where customer.Country == "USA" || customer.Country == "Canada" // select customer; //盘问单列(这样就不能使用强类型视图了) //list = from customer in db.Set<Customers>() select customer.Country; //盘问多列(将select后换为匿名东西或者要展示的东西)(建议新增viewModel作为视图东西,否则在前台数据必需进行反序列化操纵) //list = from customer in db.Set<Customers>() select new CustomerModel{ ContactName= customer.ContactName,CompanyName= customer.CompanyName }; //分页,Skip就是跳过元素,Take就是要返回排在前面的几个元素,一般与OrderBy排序使用(注意:是要领特有的,不是Linq写法) list = (from customer in db.Set<Customers>() select customer).OrderBy(c => c.CompanyName).Skip(5).Take(15); ViewData.Model = list; return View(); } public ActionResult FuncTionIndex() { //使用要领进行盘问 DbContext db = new NorthwindEntities(); //返回全部数据 var list = db.Set<Customers>(); //单条件盘问(像JQuery的树一样叠加) //var list1 = list.Where(c => c.Country == "USA"); //多条件 //var list1 = list.Where(c => c.Country == "USA" || c.Country == "Canada"); //单列或者多列盘问 //var list1 = list.Select(c => //new CustomerModel { CompanyName = c.CompanyName, ContactName = c.ContactName }); ViewData.Model = list1; return View(); } } }

前台代码:

@model IEnumerable<T1_EF.Models.Customers> @*@model IEnumerable<T1_EF.ViewModels.CustomerModel>*@ @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>FuncTionIndex</title> </head> <body> <div> <table border="1"> <tr> <td>联系人姓名</td> <td>客户公司</td> <td>客户属国</td> </tr> @foreach (var item in Model) { <tr> <td>@item.ContactName</td> <td>@item.CompanyName</td> <td>@item.Country</td> </tr> } </table> </div> </body> </html>

显示效果:

技术图片

End

MVC初体验-EF盘问(Lambda的用法)(18)

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30521.html