zoukankan      html  css  js  c++  java
  • 一个简单的EF Linq MVC Web应用程序

    LINQ(Language Integrated Query)语言集成查询是一组用于c#Visual Basic语言的扩展。

    它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数据库。

    LINQ的读法:lin k 很多人会误读为lin Q

    LINQ的全称:Language-Integrated Query

    LINQ的关键词:from, select, in, where, group by, orderby, …

     详情请查阅:https://baike.so.com/doc/4973517-5196197.html

    话不多说,看操作。

               步骤一:确定你的开发环境:vs2015  sql2008。

               步骤二:凡事开发都离不开数据库的搭建,搭建你的数据库,插入一条数据,查看是否有数据,这我就不废话了。

    -- 用户表
    drop table [User] 
    Create Table [User] 
    (
     "Theserialnumber" int  IDENTITY   (1,   1)   NOT   NULL ,  
     "UserID"          varchar(50)  NOT   NULL ,
     "UserName"        varchar(30),
     "UserSet"         char(2),
     "Userphone"       char(11),
     "UserworkID"      varchar(50),
     "UserlevelID"       varchar(20),   
     "UserTypeID"      varchar(50),
     "UserCreationtime" dateTime,
     "UserhobbyID"     varchar(50),
     )
     alter table [User] add constraint pk_name primary key ("Theserialnumber","UserID");
     --用户工作表
     drop table Work
     Create Table Work
     (
       "UserworkID" varchar(50) Primary Key  NOT   NULL,
       "UserworkType" varchar(50),
       "WorkDetailsID"  varchar(50)
     )
     --用户工作详情表
     drop table WorkDetails
     Create Table WorkDetails
     (
      "WorkDetailsID" varchar(50) Primary Key,
      "WorkDetailsSituation" varchar(50)
      
     )
     
     --权限表
     drop table [level]
     Create Table [level]
     (
      "UserlevelID" varchar(50)  Primary Key,
      "UserleverlType" varchar(50)  
     )
     
     --类型表
     drop table UserType
     Create Table UserType
     (
     "UserTypeID" varchar(50)  Primary Key,
     "UserType"   varchar(50)
     )
     
     --业余表
     drop table Userhobby
     Create Table Userhobby
     (
      "UserhobbyID" varchar(50) Primary Key,
      "Userhobby"   varchar(50)
     )
     
    --增加数据
     insert into [User](UserID,UserName,UserSet,Userphone,UserworkID,
                         UserlevelID,UserTypeID,UserCreationtime,UserhobbyID)
                         values('2020020901494949','张三','','13817475159','1',
                         '1','1',2020/2/9,'1')
                   
    insert into Work(UserworkID, UserworkType, WorkDetailsID)values('1','IT','2020020901494949')
    
    
    insert into WorkDetails(WorkDetailsID, WorkDetailsSituation)values('2020020901494949','开发编码')
    
    insert into [level] (UserlevelID, UserleverlType)values('1','管理员')
    insert into [level] (UserlevelID, UserleverlType)values('2','普通用户')
    
    insert into UserType(UserTypeID, UserType)values('1','开发人员')
    
    insert into Userhobby(UserhobbyID, Userhobby)values('1','编码')
    insert into Userhobby(UserhobbyID, Userhobby)values('2','')
    insert into Userhobby(UserhobbyID, Userhobby)values('3','学习')
    insert into Userhobby(UserhobbyID, Userhobby)values('4','工作')

               步骤三:打开你的Visual Studio,新建---项目---ASP.NET Web应用程序。

               步骤四:建一个类库Model(模型)和一个数据访问层DAL

               步骤五:在Model建一个ADO.NET实体数据模型来自数据库的EF设计器

               步骤六:建立引用(索引)  

                              DAL索引Model和程序集框架System.Data.Linq系统配置文件

                              Web应用程序索引DAL和Model

                              在应用程序和DAL里导入Nu Get程序包:EntityFramwork

                              配置好Web.config文件

                步骤七:在DAL数据访问层中搭建一个类,来编写Linq,你需要的功能操作

            /// <summary>
            /// 多表查询
            /// </summary>
            /// <returns></returns>
            public static IQueryable GetDateSet()
            {
                FamilyServerEntities Family = new FamilyServerEntities();
                var v = from p in Family.User
                        join Work in Family.Work on p.UserworkID equals Work.UserworkID
                        join Level in Family.level on p.UserlevelID equals Level.UserlevelID
                        join Type in Family.UserType on p.UserTypeID equals Type.UserTypeID
                        join Details in Family.WorkDetails on Work.WorkDetailsID equals Details.WorkDetailsID
                        join Userhobby in Family.Userhobby on p.UserhobbyID equals Userhobby.UserhobbyID
                        orderby p.UserID
                        select new
                        {
                            UserID = p.UserID,
                            UserName = p.UserName,
                            UserSet = p.UserSet,
                            Userphone = p.Userphone,
                            UserworkType = Work.UserworkType,
                            WorkDetailsSituation = Details.WorkDetailsSituation,
                            UserleverlType = Level.UserleverlType,
                            UserType = Type.UserType1,
                            UserCreationtime = p.UserCreationtime,
                            Userhobby = Userhobby.Userhobby1
                        };
                // var Lambda = Family.User.Select(t => new { });
                return v;
            }
    
            /// <summary>
            /// 增加多条
            /// </summary>
            /// <param name="list"></param>
            /// <returns></returns>
            public static int ADD(List<User> list)
            {
                using (FamilyServerEntities Family = new FamilyServerEntities())
                {
                    foreach (var item in list)
                    {
                        Family.User.Add(item);
                    }
                    return Family.SaveChanges();
                }
            }
    
            /// <summary>
            /// 修改多条
            /// </summary>
            /// <param name="list"></param>
            /// <returns></returns>
            public static int Edit(List<User> list)
            {
                using (FamilyServerEntities Family = new FamilyServerEntities())
                {
                    var v = (from p in Family.User select p).First();
                    foreach (var item in list)
                    {
                        v.UserName = item.UserName;
                    }
                    return Family.SaveChanges();
                }
            }
    
            /// <summary>
            /// 删除多条
            /// </summary>
            /// <param name="UserID"></param>
            /// <returns></returns>
            public static int Del(string UserID)
            {
                using (FamilyServerEntities Family = new FamilyServerEntities())
                {
                    var v = (from p in Family.User where p.UserID == UserID select p).ToList();
                    foreach (var item in v)
                    {
                        Family.User.Remove(item);
                    }
                    return Family.SaveChanges();
                }
            }

               步骤八:在控制器里访问方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace WebLinq.Controllers
    {
        public class HomePageController : Controller
        {
            // GET: HomePage
            public ActionResult Index()
            {
                return View();
            }
            public ActionResult HomePage()
            {
                return Json(BLL.Family.GetDateSet(), JsonRequestBehavior.AllowGet);
                
            }
        }
    }

         

               步骤九:展示功能效果

    可以在jquery中用Ajax方法,Post请求,GetJson请求访问控制器再遍历到HTML表格或控件中

    好了,来总结一下,其实挺简单的。

  • 相关阅读:
    四叉树编码存储的实现
    窗体之间传递值的几种方法
    常见的六种排序算法实现
    OracleHelper类
    c#动态加载dll文件
    STL学习系列九:Map和multimap容器
    STL学习系列八:Set和multiset容器
    STL学习系列七:优先级队列priority_queue容器
    STL学习系列六:List容器
    STL学习系列五:Queue容器
  • 原文地址:https://www.cnblogs.com/jstblog/p/12293745.html
Copyright © 2011-2022 走看看