EF Code First 课程信息的增删改查操做的具体实现

1.今日完成任务程序员

  • 课程信息的增删改查
  • 课程信息的格式化显示
  • 增删改查中的模型验证

2.核心代码数据库

  • 课程信息的添加(使用Bootstrap模态框及模型验证)

 

 

 接上一篇博客,咱们已经对实体类添加了必要的属性约束,如今就能够进行使用了。想要使用属性约束,须要用到Html.ValidationMessageFor(m=>m.属性名)app

 

 

 后台应该添加2个方法,一个用于显示添加页面(让用户输入必要的值);另外一个用于处理用户提交的数据。Post方法可使用对象来接收用户传递的数据,但用户提交数据的名字必定要可以在该对象的属性中找到,不然该对象将没法接受此数据(能够增长对应的参数名来进行接收)。框架

  • 课程信息的删除:课程的删除有两种方式,最多见的应该是:先查询到指定对象,而后调用删除。其实,EF框架给咱们提供了一种更友好的删除:实体状态。关于对象状态,其余博主已经讲的很详细了,这里就再也不班门弄斧了。推荐你们研究研究,尤为是在大型项目中,能够减小没必要要的数据库操做。

  • 课程信息的查询及显示:数据显示这块,其实没太多知识点,可刚刚讲到的添加模块相似,也是使用系统函数进行显示(Dispaly约束及数据类型约束)。针对本系统,咱们的课程想要显示该课程对应的题目总数,咱们该怎么办呢?这里有两种方式,一个是course.Questions.Count。相信这种方式你们都能想到。但有些信息并非这么容易获取到或者使用太过于频繁(总不能每次都这么写吧)。经研究发现,咱们能够在实体类中添加一个额外属性便可。谨记,必定要添加[NotMapped],不然就会被写入数据库啦

 

 经过这么改造之后,咱们就能够光明正大的和其余属性同样,直接调用Count了。函数

 

  3.遇到的问题及解决方案spa

通过改造的实体类,Count只能用于显示。想要进行数据检索,仍是和其余属性不太同样,主要仍是咱们并无把Count属性写进数据库,也就没办法直接在EF框架中进行使用。这是否是预示着,Count除了用于显示,就没其余用处了呢?哈哈,固然不是的啦,毕竟每一个程序员都有一颗不服输的精神,况且这么技术狂的我呢。通过不断研究,我发如今Linq to Object中是可使用这个属性进行检索的。下面我就来给你们解密一下吧!对象

  1. 首先,咱们须要把EF框架转化为咱们的Linq to Object,其实这只须要一个ToList()便可。
  2. 接着,咱们就能够直接使用Count进行检索了。

 

 4.项目进度规划(因为最近事情比较多,因此项目基本处于停滞状态,如今才慢慢走入正轨)blog

相关文章
相关标签/搜索