ASP.NET MVC+EF框架+EasyUI實現(xiàn)權限管系列
前言:本文開始我們便一步一步的來實現(xiàn)這個權限系統(tǒng)的初步設計-框架搭建,首先我要說的是我們需要開發(fā)工具Visual Studio 2012或者10也行,其次是我們要有SQL Server數(shù)據(jù)庫,如果是Visual Studio 2010的話,你還要安裝MVC4的開發(fā)文件,這個是嗎?我不記得了,誰可以回答我一下的,我一直用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)現(xiàn)在越來越多的項目中你可以看到var,這是什么意思呢?其實這就是C#3.0新特性提供的隱士類型var,var關鍵字指示編譯器根據(jù)初始化語句右側的表達式推斷變量的類型。
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);,但是后面的這個表達式會產(chǎn)生編譯錯誤:var i=(i=20)。
4)不能在同一個語句中初始化多個隱式類型的變量。
5)如果范圍中有一個名為var的類型,則var關鍵字將解析為該類型名稱,而不做為隱式類型局部變量聲明的一部分去處理。
3.匿名類
(1)將一組只讀屬性封裝到單個對象中,而無需首先顯示定義一個類型,類型名由編譯器生成,并且不能在源代碼級使用,每個屬性的類型由編譯器推斷。[var]
(2)用來初始化屬性的表達式不能是null,匿名函數(shù)和指針類型。
var Kencery=new{ID=1,Name=”HYL”,Age=24}
4.對象初始化器和集合初始化器
(1)對象初始化器是利用了編譯器對對象中對外可見的字段或者屬性進行按序賦值,在編譯還是隱式調(diào)用了構造函數(shù),對字段或?qū)傩缘馁x值可以是一個或者多個。
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)擴展方法是一種特殊的靜態(tài)方法,它定義在一個靜態(tài)類中,但可以在其他類的對象上向調(diào)用實例方法那樣進行調(diào)用。因此,通過擴展方法,我們就可以在不修改一個類型的前提下對一個類型進行功能上的擴充,這種方法并不會產(chǎn)生新的類型,而是采用向已有類中加入新方法的方式來完成功能的擴展。
(2)在對已有類進行擴展時,我們需要將所有的擴展方法都寫在一個靜態(tài)類中,這個靜態(tài)類就相當于存放擴展方法的容器,所有的擴展方法都可以寫在這里面。擴展方法與普通方法的聲明方式不同,擴展方法的第一個參數(shù)以this關鍵字開始,后面跟被擴展的類型,然后才是真正的參數(shù)列表。
public static 返回類型 擴展方法名(this 要擴展的類型 參數(shù)名稱[,擴展方法參數(shù)列表])
{
}
public static int ToInt32(this string s) //擴展方法將字符串轉(zhuǎn)換為整形
{
return Int32.Parse(s);
}
6.Lambda表達式
(1) ”Lambda表達式”是一個匿名函數(shù),他可以包含表達式和語句,可用于創(chuàng)建委托。
(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的程序,相信大家都已經(jīng)會了,然后搭建框架,搭建的框架如圖所示:
(2) 然后我們再LYZJ.UserLimitMVC.Model層設計數(shù)據(jù)庫,在里面建立一個空的Edmx模型,如圖所示:
(3) 上面我們建立了四個類庫和一個MVC4.0的項目,大家仔細看一下,如果大家對這四個類庫的作用不太明確的話,我建議大家可以去看看三層的架構,或者在下面給我留言,現(xiàn)在就不往出寫了。
(4) 這篇博客到這里就結束了,下篇博客我們開始講述:使用面對接口編程變成對數(shù)據(jù)庫訪問層進行介紹。
相關文章
Asp.net Core MVC中怎么把二級域名綁定到特定的控制器上
這篇文章主要介紹了Asp.net Core MVC中怎么把二級域名綁定到特定的控制器上,需要的朋友可以參考下2017-06-06asp.net Parameters.AddWithValue方法在SQL語句的 Where 字句中的用法
今天晚上看論壇,有人提問說,Parameters.AddWithValue方法在有些情況下不好使2009-01-01.NET 6開發(fā)TodoList應用之實現(xiàn)接口請求驗證
在響應請求處理的過程中,我們經(jīng)常需要對請求參數(shù)的合法性進行校驗,如果參數(shù)不合法,將不繼續(xù)進行業(yè)務邏輯的處理。本文將介紹如何使用FluentValidation和MediatR實現(xiàn)接口請求驗證,需要的可以參考一下2021-12-12.net webapi接收xml格式數(shù)據(jù)的3種情況小結
這篇文章主要給大家總結介紹了關于.net webapi接收xml格式數(shù)據(jù)的3種情況,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02Asp.net內(nèi)置對象之Request對象(概述及應用)
Request對象主要用于獲取來自客戶端的數(shù)據(jù),如用戶填入表單的數(shù)據(jù)、保存在客戶端的Cookie等,本文將圍繞Request對象,講解其的主要作用:讀取窗體變量、讀取查詢字符串變量、取得Web服務器端的系統(tǒng)信息。取得客戶端瀏覽器信息等等,感興趣的朋友可以了解下2013-02-02建立自定義的數(shù)據(jù)驅(qū)動的本地化資源provider
本文探討了自定義的本地化資源提供者.如果想用一個可替代系統(tǒng)的資源處理方案,例如把所有的資源放入數(shù)據(jù)庫中,而不是放在分散的資源文件里,你可以自定義一個resource provider.2010-06-06