[ASP.NET]讓Entity Framework資料庫優先模式也支援自動校正

來源:互聯網
上載者:User

讓Entity Framework資料庫優先也支援自動校正

羅朝輝 (http://kesalin.cnblogs.com/)

本文遵循“署名-非商業用途-保持一致”創作公用協議 ASP.NET MVC 確實比以前的ASP編程模式 VIEW-BLL-DAL三層架構長進了不少,再加上Entity Framework利器,開發Web應用非常容易。要結合這兩者,使用 Code First 模式非常好用,這樣我們就非常方便在模型的欄位上加上許多 System.ComponentModel.DataAnnotations 來對欄位進列欄位校正。但如果使用 Database First 模式,就稍微有點不那麼方便了,但是辦法還是有的,使用 partial 類是一種解法。 範例程式碼示範了 Database First 模式下,使用兩個資料模型,在其中使用 partial 類來實現對欄位的自動校正,並且將資料模型封裝帶單獨的 dll 中。示範結果如下:

 

上面 student 和 school 頁面的資料來自兩個的資料庫,而名稱長度的校正是在相應的 partial 類欄位上加 System.ComponentModel.DataAnnotations 限定實現的。

工程結構:

示範代碼很簡單,在這裡就只列出 student.cs 的實現:

using System;using System.ComponentModel.DataAnnotations;namespace Student.DAL{    public partial class student    {        [Required]        [StringLength(8, ErrorMessage = "{0} 至少應包含6個字元。", MinimumLength = 6)]        [Display(Name = "名稱")]        public string MName        {            get { return Name; }            set { Name = value; }        }        [Required]        [Display(Name = "Age")]        public Int64 MAge        {            get { return Age; }            set { Age = value; }        }    }}

 

從上面的代碼可以看出,partial 類對 EF 自動產生的 Entity 類進行了簡單的封裝,雖然這樣有冗餘,但為了能實現自動檢驗,也就容忍了。不知還有更好的辦法沒有,前提是不要修改 EF 自動產生的 Entity 類。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.