最近專案想做乙個員工統一工號生成的系統,本來可以直接讓別的同事來做的,不過大家都在專案上忙不開,剛好也可以練練手於是就接過這個專案。之前雖然一直對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...