tnblog
首页
视频
资源
登录

EF三种模式解析

6253人阅读 2019/10/25 12:51 总访问:400354 评论: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

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

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

C out、rEF关键字的用法和区别

说说自己对out、ref的认识,面试问到的几率很高哟。out:classProgram { /* *out、ref都是引用传递,传递后使用都会改变...

Net Core使用EF之DB First

一.新建一个.net core的MVC项目新建好项目后,不能像以前一样直接在新建项中添加ef了,需要用命令在添加ef的依赖二.使用Nug...

EF6动态添加条件

例如我们要匹配一个集合中的所有关键字,我们首先想到的做法是这样的publicList&lt;Article&gt;GetArtByKeys(List&lt;strin...

Net Core使用依赖注入来装载EF的上下文对象

妹子情人节快乐~.net core中用了不少的依赖注入,官方文档中也推荐使用。这样使用依赖注入来管理ef对象,还是比较科学,比如...

NET CORE配置EF连接字符串。windows验证的连接字符串配置

在appsettings.json中配置好连接字符串{&quot;ConnectionStrings&quot;:{ &quot;BloggingDatabase&quot;:&quot;Server=(lo...

使用REFit框架访问REST接口

改装是一个类型安全的REST开源库,是一套基于RESTful架构的.NET客户端实现,内部使用HttpClient类封装,可通过改装更加简单...

docker启动报错 No dEFault Boot2Docker ISO found locally downloading the latest

这是因为,启动时如果检测到没有 Boot2Docker,就会去下载,这个下载过程出现网络连接上的错误了,导致启动失败。可以去下...

扩展EF自动映射需要查询的字段(表达式树Expression),动态构建返回值

Entity Framework 动态构造select表达式比如我们需要返回某些字段会采用如下的写法但是发现每次都去写select如果字段很多不...

layer弹窗+EF引入独立页面进行操作

使用layer弹窗进行操作的时候我们可以使用type=2,来把一个独立的页面指向content内容例如我们有一个表格,点击添加后,我...

Entity Framework常用查询,EF joinEF多表联查,原生sql。EF 多表查询。AsNoTracking

直接执行sql语句//全表查询 List&lt;Users&gt;ulist=se.Database.SqlQuery&lt;Users&gt;(&quot;select*fromusers&quot;).T...

EF Code First常用命令

Enable-Migrations启用数据库迁移Enable-Migrations –EnableAutomaticMigrations 启动自动迁移Add-Migration Name(名字可...

EF Code First 多对多关系配置

Code First配置多对多关系,常规有两种方法例如我们有一张学生表,和一张课程表,学生和课程是一个多对多的关系方法1:单纯...

解决:基础提供程序在 Open 上失败,EF无法生成实体问题

在学校图书馆的电脑上安装VS2013和SQL R2后,调试项目报错:基础提供程序在 Open 上失败怀疑是数据库的问题,然后删除数据...

net core过滤器。net core过滤器中获取依赖注入对象。net core过滤器中使用依赖注入。ServicEFilter 

虽然对象都可以直接实例化得到。但是所有的对象依赖关系,都用DI容器去管理,这样后面想要更换对象的时候也非常方便,项目...

EF状态System.Data.EntityState的一点理解

System.Data.EntityState一共有五种状态分别是Added,Deleted,Modified,UnChanged,Detached下面给一个简单的解释System.Data...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
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
欢迎加群交流技术
枯藤老树昏鸦,小桥流水人家,古道西风瘦马。