ASP.NET MVC+EF框架+EasyUI实现权限管系列

  前言:本文开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成好的,所以不太清楚。因为这篇博客比较简单,只是建立一个简单的架构,所以我顺便进行一下MVC的知识补充,后面我也会这样穿插着介绍项目中遇到的技术,下面开始今天之旅。

1.自动属性

(1)自动属性(Auto-Implemented Properties),C#自动属性可以避免原来我们手工的来声明一个私有成员变量以及和属性get,set的书写。

代码如下:

public class Kencery  //声明一个Kencery的类
       {
              public int ID{get;set;}  //主键ID
              public string Name{get;private set;}  //只读属性名字
              public int Age{get;set;}   //年龄
       }

2.隐式类型var

(1)现在越来越多的项目中你可以看到var,这是什么意思呢?其实这就是C#3.0新特性提供的隐士类型var,var关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。

代码如下:

var Kencery=”大家晚上好”;   //定义变量
       var list=new List<int>();    //定义一个List集合
       var Kencery=new{ID=1,Name=”HYL”,age=24}  //对象初始化起定义的类型
       var geners = from n in StoreContract.ProductCatalogs
                         where n.IsSystem == false
                         select n;
            return View(geners);

//Linq的使用,这个在后面我们会大量的使用,大家没学过的可以自学。

(2) var有这么大的功能,那么他有什么缺点呢,我们这里列举大致一下

1)只有在同一个语句中声明和初始化局部变量时,才能使用var,不能将该变量初始化为null,方法组或者匿名方法。

2)不能将var用于类范围的域。

3)由var声明的变量不能用在初始化表达式中,换句话说,此表达式是合法的:int i=(i=20);,但是后面的这个表达式会产生编译错误:var i=(i=20)。

4)不能在同一个语句中初始化多个隐式类型的变量。

5)如果范围中有一个名为var的类型,则var关键字将解析为该类型名称,而不做为隐式类型局部变量声明的一部分去处理。

3.匿名类

(1)将一组只读属性封装到单个对象中,而无需首先显示定义一个类型,类型名由编译器生成,并且不能在源代码级使用,每个属性的类型由编译器推断。[var]

(2)用来初始化属性的表达式不能是null,匿名函数和指针类型。

var Kencery=new{ID=1,Name=”HYL”,Age=24}

4.对象初始化器和集合初始化器

(1)对象初始化器是利用了编译器对对象中对外可见的字段或者属性进行按序赋值,在编译还是隐式调用了构造函数,对字段或属性的赋值可以是一个或者多个。

代码如下:

List<Kencery> kencery=new List<Kencery>{  //Kencery类
              new Kencery{ID=1,Name=”Hanyinglong”,Age=19},
       New Kencery{ID=2,Name=”HYL”},
       null
};
Person p=new Person{ ID=1,Name=”HYL”,Age=19 };

5.扩展方法

(1)扩展方法是一种特殊的静态方法,它定义在一个静态类中,但可以在其他类的对象上向调用实例方法那样进行调用。因此,通过扩展方法,我们就可以在不修改一个类型的前提下对一个类型进行功能上的扩充,这种方法并不会产生新的类型,而是采用向已有类中加入新方法的方式来完成功能的扩展。

(2)在对已有类进行扩展时,我们需要将所有的扩展方法都写在一个静态类中,这个静态类就相当于存放扩展方法的容器,所有的扩展方法都可以写在这里面。扩展方法与普通方法的声明方式不同,扩展方法的第一个参数以this关键字开始,后面跟被扩展的类型,然后才是真正的参数列表。

代码如下:

public static 返回类型 扩展方法名(this 要扩展的类型 参数名称[,扩展方法参数列表])
       {
       }
       public static int ToInt32(this string s) //扩展方法将字符串转换为整形
       {
              return Int32.Parse(s);
       }

6.Lambda表达式

(1) ”Lambda表达式”是一个匿名函数,他可以包含表达式和语句,可用于创建委托。

(2) 运算符 =>,该运算符读作:”goes to”。

(3) 格式:(input parameters)=>expression

delegate bool DelDemo(int a,int b);  //定义委托

DelDemo Lambda=(int a,int b)=>a>b  //使用Lambda表达式表示a是否大于b

Console.WriteLine(Lambda(1,4));

7.项目整体框架流程图

(1)上面扯了这么多,其实跟我们今天的博客没什么用,只是一些准备工作,也是复习一下这些知识点,下面我们将新建一个MVC4的程序,如何新建一个MVC4的程序,相信大家都已经会了,然后搭建框架,搭建的框架如图所示:

(2) 然后我们再LYZJ.UserLimitMVC.Model层设计数据库,在里面建立一个空的Edmx模型,如图所示:

(3) 上面我们建立了四个类库和一个MVC4.0的项目,大家仔细看一下,如果大家对这四个类库的作用不太明确的话,我建议大家可以去看看三层的架构,或者在下面给我留言,现在就不往出写了。

(4) 这篇博客到这里就结束了,下篇博客我们开始讲述:使用面对接口编程变成对数据库访问层进行介绍。

(0)

相关推荐

  • VS2015下简单使用EF框架的方法

    VS2015下如何简单使用EF框架的方法,具体内容如下 新建Model1.edmx文件 页面引用数据库Model1 如下创建AD数据库的model文件. 找到以下菜单 找到所需要引用数据库类名称. 在页面后台引用 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; name

  • VS2015 免费插件Refactoring Essentials

    题记: 之前由SharpDevelop团队开发且用于SharpDevelop这个开源IDE中的重构插件"NR6Pack"改名为"Refactoring Essentials",被Hanselman称之为对"Web Essentials"的一种致意(通过"阅读原文"来查看Hanselman的介绍文章),而我认为这个插件也会如"Web Essentials"那样成为Visual Studio 2015上的必备插

  • ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统之前端页面框架构建源码分享

    开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe 工欲善其事必先利其器.需要用到以下工具. Visual Studio 2012 您可以安装MVC4 for vs2010用VS2010来开发,但是貌似你将不能使用EF5.0将会是EF4.4版本,但这没有多大的关系. MVC4将挂载在.NET Framework4.5上. 好

  • ASP.NET MVC+EF框架+EasyUI实现权限管系列

    前言:本文开始我们便一步一步的来实现这个权限系统的初步设计-框架搭建,首先我要说的是我们需要开发工具Visual Studio 2012或者10也行,其次是我们要有SQL Server数据库,如果是Visual Studio 2010的话,你还要安装MVC4的开发文件,这个是吗?我不记得了,谁可以回答我一下的,我一直用2012,都是集成好的,所以不太清楚.因为这篇博客比较简单,只是建立一个简单的架构,所以我顺便进行一下MVC的知识补充,后面我也会这样穿插着介绍项目中遇到的技术,下面开始今天之旅.

  • ASP.NET MVC+EF实现异步增删改查

    目录 功能实现 1.搭建UI层 2.添加实体类 3.添加服务接口层 4.添加Entity Framework 1.开启迁移 2.增加迁移 3.生成数据库 5.添加接口的实现类 6.添加控制器 功能实现 我们以学生为例,实现增删改查功能. 1.搭建UI层 我们这里使用ASP.NET MVC作为界面层显示数据,首先创建一个解决方案,然后添加一个MVC项目,命名为TaskAsync.UI,创建后的项目结构如下图所示: 2.添加实体类 我们把实体类放在单独的类库里面,新建一个类型项目,命名为TaskAs

  • ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项

    一直想自己做个博客网站,技术路线是用ASN.NET MVC5+EF6(Code First)+ZUI+各种Jquery插件,有了这个想法之后就开始选择UI,看了好多bootstrap的模板之后,发现即使你用了bootstrap还是要自己写css样式,都是自学的,前端真的很垃圾,在网上找了很多UI,以下是各种UI的地址,需要的可以去看看: H-ui:http://www.h-ui.net/H-ui.admin.shtml ,是一个前端大牛弄得,模仿bootstrap,做适合中国网上的UI. Ama

  • 扩展ASP.NET MVC三层框架且使用StructureMap实现依赖注入1-Model层

    本篇文章将向大家介绍如何添加Service和Repository层并且使用StructureMap把Service层注入到Controller,把Repository注入到Service层.Service层主要是我们的业务逻辑层,这一层不和底层的Database打交道,和Database打交道的是Repository数据持久层.本篇文章通过使用StructureMap依赖注入使Controller,Service,Repository三层的耦合度降到最低. 本系统使用NorthWind开源数据,

  • 基于ASP.NET MVC的ABP框架入门学习教程

    为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加,我们发现其实很多工作都是重复机械的,而且随着软件复杂度的不断提升,以往依靠经验来完成一些简单的增删改查的做法已经行不通了.特别是用户的要求越来越高,希望添加的功能越来多,目前这种开发模式,已经捉襟见肘.我很难想象如何在现有的模式下进行多系统的持续集成并添加一些新的特性. 开发一个系统时,我们不可避免

  • ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)

    本文实例讲述了ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法.分享给大家供大家参考,具体如下: ActionFilterAttribute是Action过滤类,该属于会在执行一个action之前先执行.而ActionFilterAttribute是 MVC的一个专门处理action过滤的类.基于这个原理 我们做一个权限限制 例如:如何访问 HomeController  里的test  action using System; using System.C

  • 浅谈MVC+EF easyui dataGrid 动态加载分页表格

    首先上javascript的代码 <script type="text/javascript"> $(function () { LoadGrid(); }) //加载表格!!! function LoadGrid() { $('#roleGrid').datagrid({ width: 900, striped: true, //交替条纹 fitColumns: true, //防止水平滚动 fit: true,//自动补全 iconCls: "icon-sav

  • ASP.NET MVC使用EasyUI的datagrid多选提交保存教程

    需要实现EasyUI的datagrid组件加入选择checkbox列,并提交后台批量添加的功能,页面代码如下: 复制代码 代码如下: <script language="javascript" type="text/javascript"> $(function() { //searchbox $('#selectgoods-keywords').searchbox({ searcher: function(val, name) { searchInfo

  • Asp.net mvc 权限过滤和单点登录(禁止重复登录)

    1.权限控制使用controller和 action来实现,权限方式有很多种,最近开发项目使用控制控制器方式实现代码如下 /// <summary> /// 用户权限控制 /// </summary> public class UserAuthorize : AuthorizeAttribute { /// <summary> /// 授权失败时呈现的视图 /// </summary> public string AuthorizationFailView

  • ASP.NET Mvc开发之EF延迟加载

    先来看看定义 EF延迟加载:就是使用Lamabda表达式或者Linq 从 EF实体对象中查询数据时,EF并不是直接将数据查询出来,而是在用到具体数据的时候才会加载到内存. 一.实体对象的Where方法返回一个什么对象? 大家来看一下上一篇文章的代码来分析一下: #region 查询文章列表+ActionResult Article() /// <summary> /// 查询文章列表 /// </summary> /// <returns></returns>

随机推荐