• MVC初体验-EF查询(Lambda的用法)(18)


    使用数据库: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

  • 相关阅读:
    嵌入式开发之web服务器---boa移植
    图像处理之基础---去污算法
    图像处理之基础---傅里叶
    图像处理之基础---卷积
    图像处理之基础---各种滤波
    二维矩阵卷积运算实现
    图像处理之基础---卷积傅立叶变换中的复数
    图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
    Live555 中的客户端动态库.so的调用方式之一 程序中调用
    20个Flutter实例视频教程-01节底部导航栏和切换效果的制作-1
  • 原文地址:https://www.cnblogs.com/LeeSki/p/12261837.html
Copyright © 2020-2023  润新知