MVC3 EntityFramework實踐筆記

2021-09-07 21:35:03 字數 3135 閱讀 4851

最近專案想做乙個員工統一工號生成的系統,本來可以直接讓別的同事來做的,不過大家都在專案上忙不開,剛好也可以練練手於是就接過這個專案。之前雖然一直對mvc和entity framework有點了解,但是實際使用的時候還是有很多問題。本文是記錄在專案開發過程中遇到的第一手問題及解決辦法。 

1.datacontext的選擇

遇到的第乙個問題就是dtacontext的選擇,之前以為根據生成的edmx就可以直接選擇model生成controller及view了。 不知道還需要data context。好吧,初步查了一下data context是相關的底層資料連線、資料集定義的。

所以在生成controller 的時候就選擇表的類及建立時生成的entity即可。

2. 資料校驗

mvc提供了比較多的資料校驗功能,但是很多提示是英文的

[required(errormessage = 

"必填")]

[datatype(datatype.text)]

[idcardcheck]

[display(name = 

"身份證號

")]

public

string personalid 

乙個簡單辦法就是宣告errormessage值,輸入中文的錯誤提示資訊。

如果需要自定義的驗證的話,如上**中的idcardcheck,可以繼承validationattribute來實現

[attributeusage(attributetargets.field | attributetargets.property, allowmultiple = 

false, inherited = 

true)]

public

class idcardcheckattribute : validationattribute

}

else

return

true;

}catch (exception exp)

} }

3. 對映儲存過程

edmx支援將儲存過程對映到實體類的新增、刪除、修改中。

對映之後呼叫的時候還是可以用類似於ssodb.t_userinfo.addobject(***);這種方式來呼叫但是實際執行的時候是執行儲存過程了。

3. 匯入儲存過程方法

如果你想在儲存過程裡直接使用儲存過程的方法,那麼可以在model brower裡的 function imports裡匯入儲存過程。

在**裡直接使用:

ssodb.deleteemployee(id, currentuser);

4. codefirst 實現

ef4.1 開始引入了model first/database first/code first 等功能,由於這個專案是在之前專案的專案上改過來的。所以沒有完全用code first來做。不過在找解決辦法的過程中還是試了一下code first。以下為 code first相應的model class及data class的**:

public

class useridinfo

public

string name 

public system.datetime createtime 

public nullable createuser 

public

string status 

public

string *** 

public

string personalid 

public

string staffnumber 

public nullable entrydate 

public nullable sequencenumber 

}public

class useridcontext : dbcontext

public dbset useridinfos 

}

web.config的配置

<

connectionstrings

>

<

add 

name

="useridinfoconnect"

connectionstring

="data source=.\sqlexpress;integrated security=sspi;initial catalog=sso;user instance=true"

providername

="system.data.sqlclient"

/>

connectionstrings

>

5. **雲儲存

特別需要說明的是這次使用酷盤+tfs的方式來管理**。因為我在公司和家裡總共有兩台電腦,家裡的網路又連不到tfs,因此需要**同步,但是用u盤拷來拷去的太不方便了。因此想到了用酷盤作為**檔案的同步。當然我把資料庫檔案也作為同步的項了。這樣在公司寫完**如果還想回家寫的話直接到家開啟電腦即可。還有最重要的一點是酷盤有版本控制的功能。這個專案裡由於我脫離了tfs開發了好長時間,後來想把最新的**遷到tfs上,倒騰了半天把好幾個重要的檔案都給弄丟了。還好在酷盤的已刪除裡找到了,不然就白努力了。

不過有一點需要提醒的是光有酷盤可能還是行。因為你無法為**生成結構化的版本,比較打標籤之類的。因此還要結合tfs來做**的管理。

6.總結

Mvc學習筆記 3

public actionresult test new student new student new student new student viewdata stuname 張三 viewbag.stuage 22 tempdata stugender 男 return view stulis...

學習封裝 MVC 3

一 配置載入類 1 建立配置路由 return array ctrl index action index 2 控制器層 1.判斷配置檔案是否存在 2.判斷當前配置是否存在 3.快取配置 載入單一配置 static public conf array static public function g...

MVC3學習總結

本文是閱讀了scottgu s blog來記錄的,外加自己的學習心得。一 razor razor是乙個新的檢視引擎,它實現了快速,流暢的編碼流程,使得檢視模板跟簡潔乾淨。1 靈活的選擇。add view.新建檢視模板的時候你可以選擇razor cshtml 模板檢視,或aspx c 模板檢視。2 r...