[ASP.NET]让Entity Framework数据库优先模式也支持自动校验
让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 类。
分类:
Entity Framework
, Web开发
标签:
MVC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架