tnblog
首页
视频
资源
登录

EF三种模式解析

6550人阅读 2019/10/25 12:51 总访问:415620 评论:1 收藏:0 手机
分类: .NET MVC

万般皆下品,惟有编程高

我希望你是为我而来

如果我爱你,而你也正巧爱我。你头发乱了时候,我会笑笑地替你拨一拨,然后,手还留恋地在你发上多待几秒。但是,如果我爱你,而你不巧地不爱我。你头发乱了,我只会轻轻地告诉你,你头发乱了喔。这大概是最纯粹的爱情观,如若相爱,便携手到老;如若错过,便护她安好。



EF的三种模式分类:

DBFirst:数据库优先--》数据库生成代码,EF构建模型即可使用

ModelFirst:模型优先(用模型生成数据库)

CodeFirst:代码优先 (此模型相对比较灵活,写的代码较多)根据代码生成数据库


下面说一下ModelFirst模型的使用

1,先创建ADO.NET 实体数据模型

2,构建模型数据表,可以在属性里编辑字段是否为空,长度等-->如图


3,选择表间的外键关系



4,最后一步,从模型生成数据库(里面就是连接数据库,定义库名,So easy喔)就完美啦


由于生成的外键,我们的模型字段里会生成导航属性,如下


  1. public partial class Users
  2.     {
  3.         public Users()
  4.         {
  5.             this.Sourse = new HashSet<Sourse>();
  6.         }
  7.     
  8.         public int ID { getset; }
  9.         public string UserName { getset; }
  10.         public string Number { getset; }
  11.         public string Uclass { getset; }
  12.         public int ParentId { getset; }
  13.        //导航属性
  14.         public virtual Parent Parent { getset; }
  15.         public virtual ICollection<Sourse> Sourse { getset; }
  16.     }


因此我又想,这种模型的方式下,我们有没有特殊的方式在前台显示数据呢?

答案当然有啦.

1,查询两张有外键关联的表

  1.  public ActionResult Index()
  2.         {
  3.             OAContainer oAContainer = new OAContainer();
  4.             //一般联表查询
  5.             Parent parent = oAContainer.Parent.Where(a => a.Father == "胡汉之").FirstOrDefault();
  6.             List<Users> userList=oAContainer.Users.Where(a=>a.ParentId==parent.ID).ToList();
  7.             ViewBag.parent = parent;
  8.             return View(userList);
  9.         }


前台显示如下:\\



2,利用导航属性进行三表联查,封装代码如下:


  1. public ActionResult virtualShow()
  2.         {
  3.             OAContainer oAContainer = new OAContainer();
  4.             //Include("User"):就是left join 的意思
  5.             Parent parent = oAContainer.Parent.Include("User").Where(a => a.Father == "胡汉之").FirstOrDefault();
  6.             return View(parent);
  7.         }

前台显示如下:\\



好啦,ModelFirst模型的创建和应用就到这里了,下一篇分享CodeFirst模型

喜欢的朋友可以点赞加关注哦。


评价

剑轩

2019/10/25 21:47:04

[威武][给力]好文采!

你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
有意义的人等再久都有意义。