【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(2)建立資料庫和資料模型
索引
簡述
我們建立一個數據庫然後生成資料模型,新增ADO.NET實體資料模型,這裡呢常用的有兩種方式,一種是DbFirst,一種是CodeFirst,為了簡便,我們使用DbFirst。有基礎的朋友可以使用CodeFirst,對專案沒有影響的。
專案準備
我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5
希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。
專案開始
一、建立資料庫 wkmvc_db
建立資料庫。。。咱就不多講了,可以T-SQL(方便移植),我就用最基本的來建立吧~~
二、我們建立一個使用者表
我們建立一個使用者表,因為這個使用者表我打算是給後臺使用者使用的,也就是管理員表,所以我們叫做SYS_USER
我們給這個表新增一些欄位屬性
資料庫名:wkmvc_db 表名:SYS_USER
|
T-SQL:
USE [wkmvc_db] GO /****** Object: Table [dbo].[SYS_USER] Script Date: 2016/5/9 15:30:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[SYS_USER]( [ID] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](50) NULL, [ACCOUNT] [nvarchar](20) NULL, [PASSWORD] [nvarchar](1000) NULL, [ISCANLOGIN] [int] NULL, [SHOWORDER1] [int] NULL, [SHOWORDER2] [int] NULL, [PINYIN1] [nvarchar](50) NULL, [PINYIN2] [nvarchar](50) NULL, [FACE_IMG] [nvarchar](200) NULL, [LEVELS] [nvarchar](36) NULL, [DPTID] [nvarchar](36) NULL, [CREATEPER] [nvarchar](36) NULL, [CREATEDATE] [datetime] NULL, [UPDATEUSER] [nvarchar](36) NULL, [UPDATEDATE] [datetime] NULL, [LastLoginIP] [nvarchar](50) NULL, CONSTRAINT [PK_SYS_USER] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'主鍵ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'ID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'真實姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'NAME' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使用者帳號' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'ACCOUNT' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使用者密碼' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'PASSWORD' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否鎖定(0否1是)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'ISCANLOGIN' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'部門內的排序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'SHOWORDER1' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公司內的排序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'SHOWORDER2' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名全拼' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'PINYIN1' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名首字元' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'PINYIN2' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使用者頭像' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'FACE_IMG' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'級別(對接SYS_CODE)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'LEVELS' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'主部門ID,使用者所在的部門' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'DPTID' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'建立者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'CREATEPER' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'建立時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'CREATEDATE' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'UPDATEUSER' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'UPDATEDATE' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最後一次登入IP' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SYS_USER', @level2type=N'COLUMN',@level2name=N'LastLoginIP' GOView Code
然後,我們新建個登入使用者 sa_wkmvc 密碼 就123456 啦,並且新增使用者對映
安全性→登入名→新建登入名
二、新增ADO.NET實體資料模型 Sql_Wkdb
在我們的Domain中,我們新增一個ADO.NET實體資料模型 叫做Sql_Wkdb
右擊Domain→新增→ADO.NET實體資料模型 Sql_Wkdb
選擇來自資料庫的EF設計器(DbFirst)
下一步,然後點選新建連線,因為我是本地的資料庫,所以我的伺服器名稱我寫個.,選擇 使用SQL Server 身份驗證 ,並且選擇或輸入我們要連線的資料庫名稱
點選確定,然後我們更改一下 連線設定配置檔案,我們存為Entities
選擇版本
更改一下模型的名稱空間為Domain
OK,實體資料模型建立成功!
我們來新建個配置類 MyConfig.cs,用於資料庫連線字串的提取(上學的時候老師講的一般是在公共操作類DBHelper中定義const string strConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString)
1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data; 5 using System.Linq; 6 using System.Text; 7 8 namespace Domain 9 { 10 /// <summary> 11 /// 資料庫連線字串提取操作 12 /// 字串對應應用程式中配置檔案 13 /// 模型對應Domain中的資料庫模型Context.cs建構函式 14 /// </summary> 15 public class MyConfig : Entities 16 { 17 /// <summary> 18 /// 封裝EF實體模型,供Dao使用, 19 /// </summary> 20 public System.Data.Entity.DbContext db { get; private set; } 21 22 public MyConfig() 23 { 24 //例項化EF資料上下文 25 db = new Entities();//注:Entities()要修改成與EF上下文統一 26 } 27 28 #region 連線資料庫配置 29 /// <summary> 30 /// 資料庫連線字串 31 /// </summary> 32 public static string DefaultConnectionString = ""; 33 /// <summary> 34 /// 通用資料庫連結物件配置 35 /// </summary> 36 public static IDbConnection DefaultConnection 37 { 38 get 39 { 40 IDbConnection defaultConn = null; 41 //資料庫型別 42 string action = ConfigurationManager.AppSettings["daoType"]; 43 switch (action) 44 { 45 //case "oracle": 46 // defaultConn = new Oracle.ManagedDataAccess.Client.OracleConnection(); 47 // DefaultConnectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString; 48 // break; 49 case "mssql": 50 defaultConn = new System.Data.SqlClient.SqlConnection(); 51 DefaultConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString; 52 break; 53 default: 54 break; 55 } 56 return defaultConn; 57 } 58 } 59 /// <summary> 60 /// 構造資料庫連線字串 注:資料庫切換要修改 61 /// </summary> 62 public static string DataBaseConnectionString(string EntityName) 63 { 64 IDbConnection con = DefaultConnection; 65 return EFConnectionStringModle(EntityName, DefaultConnectionString); 66 } 67 /// <summary> 68 /// 構造EF使用資料庫連線字串 69 /// </summary> 70 /// <param name="EntityName">資料上下文壞境</param> 71 /// <param name="DBsoure">資料字串</param> 72 static string EFConnectionStringModle(string EntityName, string DBsoure) 73 { 74 return string.Concat("metadata=res://*/", 75 EntityName, ".csdl|res://*/", 76 EntityName, ".ssdl|res://*/", 77 EntityName, ".msl;provider=System.Data.SqlClient;provider connection string='", 78 DBsoure, "'"); 79 80 } 81 #endregion 82 83 #region SQL攔截器 84 /// <summary> 85 /// 配置EF執行SQL攔截器 86 /// </summary> 87 //public static void EFTracingConfig(log4net.ILog log4net) 88 //{ 89 // //註冊攔截器 90 // EFTracingProviderConfiguration.RegisterProvider(); 91 // //SQL日誌 92 // log4net.ILog log = null; 93 // bool isdebug = (ConfigurationManager.AppSettings["isdebug"] == "true"); 94 // if (isdebug) 95 // { 96 // log = log4net; 97 // } 98 // EFTracingProviderConfiguration.LogToLog4net = log; 99 //} 100 #endregion 101 102 } 103 }View Code
Oralce的咱們暫時不用我註釋了
下一篇,我們就來建立個公共操作介面和實現類,還有Spring注入,有不太瞭解的提前預習一下~~ 再次感謝大家的關注,這個東西並不是一個很成熟的東西,所以,大家如果提出更好的解決方案或者其它問題,我會及時修改的。
相關推薦
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(2)建立資料庫和資料模型
索引 簡述 我們建立一個數據庫然後生成資料模型,新增ADO.NET實體資料模型,這裡呢常用的有兩種方式,一種是DbFirst,一種是CodeFirst,為了簡便,我們使用DbFirst。有基礎的朋友可以使用CodeFirst,對專案沒有影響的。 專案準備 我們用的工具是:VS 2013 + Sql
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (14)附資料庫、釋出專案
索引 簡述 總結一 整個系列其實還包括專案管理、考勤簽到、郵件、內部聊天等等,這個東西是做不完的,如果繼續還有新聞系統、靜態生成等等等等.... 其中,靜態頁生成在我的部落格中可以找到,三種方式: 第一種 就是類似網上的很多CMS一樣 採用標籤替換,但這種方式是不推薦的,特別是在我們.Net中,
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (10)部門管理、崗位管理和員工管理
1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_POST_USER] Script Date: 2016/6/20 16:28:44 ******/ 4 SET ANSI_NULLS ON 5 GO
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (12)程式與資料備份
索引 簡述 程式檔案備份與資料備份 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (16)原始碼分享二:登入功能以及UI、資料庫、倉儲原始碼分享
1 using Common; 2 using Service.IService; 3 using System; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Web;
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (15)原始碼分享一:修改倉儲IRepository、RepositoryBase
1 #region 獲取多條資料操作 2 3 /// <summary> 4 /// 返回IQueryable集合,延時載入資料 5 /// </summary> 6 /// &l
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(9) 角色管理,分配許可權
索引 簡述 今天我們來做角色的管理 和 角色許可權分配 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(1)搭建MVC環境 註冊區域
索引 簡述 從今天開始,我們從0開始搭建一個框架,並且完成一個任務管理系統的專案。這並不是什麼大專案,只是對於不熟悉MVC以及不熟悉面向介面開發和依賴注入的朋友們有所啟發,因為是從0開始,所以有些地方比較囉嗦,希望大家理解! 希望新手朋友們拋棄“拿來主義”,動手跟著一步一步的做,當做完這個框架和專案
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(6) 控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作
索引 簡述 今天我們來寫一個控制器基類 主要做登入使用者、許可權認證、日誌記錄等工作 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(8) 許可權管理,自定義許可權,擴充套件許可權
索引 簡述 今天我們來做許可權的管理,這篇比較多 希望新手朋友慢慢消化 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (13)客戶管理
索引 簡述 簡單的客戶管理 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開始 一、資料
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(3)公共基礎資料操作類 RepositoryBase
索引 簡述 今天我們寫一個基礎資料的操作類,如果裡面有大家不理解的地方,可採取兩種方式,第一:提出來,第二:會用就行。這個類呢我一般不去修改它,因為基礎操作類,大家也可以直接拷貝到自己的專案中。 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案 (11)檔案管理
索引 簡述 檔案管理,這個比較雞肋 但是有些方法 大家可以參考下 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(4)對前面的一些問題彙總和總結
索引 簡述 今天我們對前3章的問題總個彙總,對一些東西做個簡單的總結,相比大家到第3章發現編輯器報了很多錯誤了,不要擔心 那是正常的,因為有很多類庫我還沒有釋出。 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(7.2) 模組管理,模組的新增、修改、刪除
索引 簡述 今天我們來做模組管理的 新增、修改、刪除 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.3) 登入功能的實現,豐富資料表、建立關聯
1 USE [wkmvc_db] 2 GO 3 /****** Object: Table [dbo].[SYS_CODE] Script Date: 2016/5/17 9:30:01 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.4) 登入功能的實現,建立與登入使用者相關的介面和實現類
索引 簡述 今天我們建立幾個與登入使用者相關的資料表的介面和實現類 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.5) 登入功能的實現,完善登入功能
索引 簡述 今天我們來完善我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行了,用的多了,用的久了,自然就理解了。 專案開
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.2) 登入功能的實現,介面注入、log4net的使用
索引 簡述 前兩天事情比較多,耽誤更新了,希望大家多多包涵,今天我們繼續做我們的登入功能 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些地方不理解也沒關係,會用就行
【無私分享:從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案(5.1) 登入功能的實現,開始接觸Spring IOC、DI
索引 簡述 今天我們做登入,今天的東西比較多,用到了Spring的IOC和DI、介面的使用、驗證等,希望大家多多討論 專案準備 我們用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家對ASP.NET MVC有一個初步的理解,理論性的東西我們不做過多解釋,有些