mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...
問題如題
現在很多時候,即使是.net項目,我們用的數據庫也未必時是 SQL Server了。
但很多VS 自帶的框架(如MVC 、WebAPI等框架)中的示例自帶的仍然是默認Sql Server的,而且并不一定好改成別的數據庫。這有時候就很苦惱。
比如.net MVC框架中自帶的一套用戶體系,含有用戶登錄注冊權限角色等一大堆的功能。如果我們開始一個新項目,不得不使用Sql Server以外的數據庫的化,而且又沒有足夠的成本來重新開發一套權限管理機制的話,那我們要怎么辦呢?
自己倉促寫的通常又太low,也不怎么安全。
套用別的又很麻煩。
而實際上,這種情況在我的工作經歷中一直持續發生,到現在我也沒能成功地運用好VS .net框架中自帶的那一套權限體系,每次都自己開發,但又覺得有點low。
痛定思痛啊,這篇博文就是為了解決這個問題。
這里面提供兩種思路和方案。
經嘗試,就算我最終在web.config里面把mysql的配置好,項目可以啟動,但注冊和登錄等需要讀寫數據庫的時候還是會出錯。
原因很簡單,sql server的話,可以直接創建數據庫和表,畢竟是自家親兒子。
別的數據庫,比如mysql,就無法創建數據庫和表,也就失敗了。
table XXX not existed的錯誤提示很明顯了。
于是我就想到了一種低級一點的辦法,事實證明,好理解,也有效。
1.低級一點的。
手工按照.net框架里要的那樣,建好一個數據庫和表,以及對應字段。
如圖:
那么你又要問,到底是什么結構呢? 這多麻煩啊
我的辦法是:
用VS新建一個MVC項目,然后就簡單粗暴運行,注冊等。此時會發現已經有sql server數據庫和表生成了。
如圖
“視圖” – sql server對象管理器“
然后,
依次獲得到各個table的創建語句
然后就可以看到打開的sql文件里的類似如下的sql語句片段:
USE [aspnet-WebApplication4-20180326090819]
GO
/****** 對象: Table [dbo].[AspNetRoles] 腳本日期: 2018/3/27 11:46:34 ******/
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[AspNetRoles] ( [Id] NVARCHAR (128) NOT NULL, [Name] NVARCHAR (256) NOT NULL );
GO
CREATE UNIQUE NONCLUSTERED INDEX [RoleNameIndex] ON [dbo].[AspNetRoles]([Name] ASC);
GO
ALTER TABLE [dbo].[AspNetRoles] ADD CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC);
可以用來創建mysql中的表嗎?
機智哦
不過直接粘貼過去執行還是會報錯的,畢竟是不同的數據庫,數據類型、語法什么的還是有些不一樣。
我們就取其中的
CREATE TABLE [dbo].[AspNetRoles] ( [Id] NVARCHAR (128) NOT NULL, [Name] NVARCHAR (256) NOT NULL );
創建表的這句話去mysql中建表就行了。
再相應修改一下:
CREATE TABLE AspNetRoles ( Id VARCHAR (128) NOT NULL, Name VARCHAR (256) NOT NULL );
如上,我去掉了dbo,去掉了中括號,NVARCHAR改為VARCHAR。
然后在mysql中執行,真的就成功了。
所以,另外的幾個表,以此類推,在mysql中就可以得到幾個表,結構和字段與sql server中的都一致了。
這些我已經親測了,確實成功。
而且后續的運行,注冊,登錄等都可以成功。
不再贅述。
總之,這里算是耍了個滑頭。
但也算是解決了問題,畢竟能用。
但上述方法真的好勉強啊。
問題的關鍵其實很簡單,就是在現有代碼條件下,mysql沒法直接就創建了mysql table這些東西。
如果能呢,那豈不是很好?
這也就是我后來終于找到的
2. 高級一點的做法
我本機的環境:
windows 10 64bit
Visual Studio 2015 旗艦版,.NET 4.5.2,
Mysql 5.7.17 社區版。
按照博文中的配置好之后,直接運行成功,一字不改。
而且注冊登錄都成功寫入數據庫。
完全仿照這個做完就好了。
總結
以上是生活随笔為你收集整理的mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胡辣汤的功效与作用、禁忌和食用方法
- 下一篇: 鲜山楂的功效与作用、禁忌和食用方法