一个简单的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表格或控件中

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

原文地址:https://www.cnblogs.com/jstblog/p/12293745.html

时间: 2024-11-07 19:58:15

一个简单的EF Linq MVC Web应用程序的相关文章

Spring学习(二)——使用用Gradle构建一个简单的Spring MVC Web应用程序

1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module,在弹出的窗口的左侧中选择 [Gradle],右侧勾选[Spring MVC],如下图所示: 并勾选[Application server],下方选择框中选择Tomcat7.0,如无该选项,则选中右边的 [ New... ] -- [ Tomcat Server ], 配置 Tomcat .配置好后

一个简单的 ASP.NET MVC 例子演示如何在 Knockout JS 的配合下,使用 TypeScript 。

前言 TypeScript 是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程.安德斯·海尔斯伯格,C#的首席架构师,已工作于TypeScript的开发.TypeScript扩展了 JavaScript 的句法,所以任何现有的JavaScript程序可以不加改变的在TypeScript下工作.TypeScript是为大型应用之开发而设计,而编译时它产生 JavaScript 以确保兼容性.TypeScript

自己实现的一个简单的EF框架(反射实现)

我实现了一个简单的EF框架,主要用于操纵数据库.实现了对数据库的基本操纵--CRUD 这是项目结构 这是一个 core 下的 DLL 写了一个数据库工厂,用于执行sql语句.调用sql语句工厂 写了一个sql语句工厂,用于生成sql语句.调用类型工厂 写了一个类型工厂,用于获取所需的类型,识别特性等. appsettings.json是配置文件 最后一个是使用说明 我实现过程的首先从底层开始. 首先写的是类型工厂 结构 BaseTypeHelper.cs 是基础的类型帮助类 TypeHelper

在 ASP.NET MVC Web 应用程序中输出 RSS Feeds

RSS全称Really Simple Syndication.一些更新频率较高的网站可以通过RSS让订阅者快速获取更新信息.RSS文档需遵守XML规范的,其中必需包含标题.链接.描述信息,还可以包含发布时间.最后更新时间等信息. 本文将介绍通过LINQ to XML生成XML文档,并在ASP.NET MVC Web应用程序中输出. 在生成RSS文档前,先简单了解一下RSS的结构.根节点rss下有channel节点,channel节点的一些子节点(title,link,description)包含

一个简单的AXIS远程调用Web Service示例

我们通常都将编写好的Web Service发布在Tomcat或者其他应用服务器上,然后通过浏览器调用该Web Service,返回规范的XML文件.但是如果我们不通过浏览器调用,而是通过客户端程序调用,该如何实现?      接下来,我们利用Eclipse作为开发工具,演示一个Axis调用WebService的简单示例.步骤如下:           第一步:新建Web Project (一定要是web project,不能是java project).      第二步:导入AXIS类库.(官

一个简单的客户单与服务端程序

实验环境是linux系统,效果如下: 1.启动服务端程序,监听在6666端口上  2.启动客户端,与服务端建立TCP连接  3.建立完TCP连接,在客户端上向服务端发送消息 4.断开连接 实现的功能很简单,但是对于初来乍到的我费了不少劲,因此在此总结一下,如有错点请各位大神指点指点 什么是SOCKET(插口): 这里不用 "套接字" 而是用 "插口" 是因为在<TCP/IP协议卷二>中,翻译时也是用 "插口" 来表示socket的.

Asp.Net MVC Web应用程序中的安全向量

一.阻止跨站脚本攻击(XSS) 1. 对所有内容进行Html编码,对于Asp.Net MVC 而言,只需要在视图中使用Html.Encode或者Html.AttributeEncode方法就可实现对特定值的编码替换. Razor视图默认输出内容采用Html编码,所以使用@Model.FirstName.显示的模型属性将被进行Html编码,而程序员不需要进行任何工作 2.  Url.Encode或者Html.AttributeEncode方法: 对预期的URL进行编码 3. JavaScript编

使用VS Code开发.Net Core 2.0 MVC Web应用程序教程之一

好吧,现在我们假设你已经安装好了VS Code开发工具..Net Core 2.0预览版的SDK dotnet-sdk-2.0.0(注意自己的操作系统),并且已经为VS Code安装好了C#扩展(在VS Code的扩展菜单中输入OmniSharp,安装扩展即可) 一.我们先在我们的电脑硬盘的某个神奇的目录下新建一个文件夹.我把这个地方选在D:\WorkTest下,创建的文件夹名称为MyCMS.注意,这一步不是在VS Code中完成的,貌似VS Code中不能创建文件夹. 二.在VS Code开发

一个简单的hello/hi的网络聊天程序

TCP套接字函数了解 socket函数 为了执行网络I/O,一个进程必须做的第一件事情就是调用socket函数,指定期望的通信协议类型(使用ipv4的TCP.使用ipv6的UDP.Unix域字节流协议等) #include<sys/socket.h> int socket(int family, int type, int protocol); 返回:若成功则为非负描述符 若出错则为-1 其中family参数指明协议族,type参数之梦套接字类型,protocol参数为某个协议类型常值,或者为