随笔分类 -  EF框架

1
摘要:1、控制台项目调用DAL类库操作上下文对象报错 在控制台项目(Framework框架)里调用DAL类库来操作EF上下文对象进行数据库的操作报错。 原因:控制台项目没有安装EntityFramework的框架的包。在netCor里会不会报错没试过。 安装好后重新运行则不会报错了。 阅读全文
posted @ 2022-06-30 11:10 青仙 阅读(53) 评论(0) 推荐(0) 编辑
摘要:1、新建一个控制台项目 也可以是asp.net的Web项目,如:mvc或者webapi等。 在该项目所在解决方案里再建一个Models文件夹,然后在文件夹里建一个Models类库,如图: 打开nuget包,安装EF所需要的包到Models类库里。 2、在类库里建立实体类 这里只创建一个基本实体类Ba 阅读全文
posted @ 2022-06-30 10:31 青仙 阅读(38) 评论(0) 推荐(0) 编辑
摘要:ORM ORM (实体关系模型) O: Domain Object 领域模型 R: Relational Database 关系型数据库 M: Mapping 映射关系 EntityFramework也是其中一种orm框架 参考资料: http://www.entityframeworktutori 阅读全文
posted @ 2022-06-29 22:05 青仙 阅读(257) 评论(0) 推荐(0) 编辑
摘要:在EF的join查询里,通常查出来一对多关系的数据,也就是一个用户对应多个数据,想单独把这些数据分为一对一关系就要用到selectMany方法,效果就如下图一样,一个用户的多个科目给拆开,使一个用户对应一个科目,当然,这里拆了之后用户可以出现重复的。 一对一的拆的方法如下, List<AllUser 阅读全文
posted @ 2022-01-11 14:41 青仙 阅读(130) 评论(0) 推荐(0) 编辑
摘要:单表 sql List<UserInfo> userList=fHZMEntities.Database.SqlQuery<UserInfo>("select * from UserInfo").ToList(); Linq List<UserInfo> userList = (from a in 阅读全文
posted @ 2022-01-11 14:34 青仙 阅读(836) 评论(0) 推荐(0) 编辑
摘要:数据库迁移 我们如果已经使用了使用CodeFirst创建数据库,但是突然又想增加或者删除一个字段的时候,如果直接去数据库里把数据库删了在重新建立数据库也是可以的,只不过非常麻烦,我们使用数据库迁移就不用这么麻烦,数据库迁移就相当于更新数据库。 数据库迁移命令: PluralizingTableNam 阅读全文
posted @ 2022-01-11 14:26 青仙 阅读(80) 评论(0) 推荐(0) 编辑
摘要:第一种使用fluentApi配置多对多关系 比如:有一个业务,一张学生表,还有一张课程表,要求,将两表建立多对多关系。 我们可以通过分析:一个学生在课程表里可以有多个课程,每个课程有可以被多个学生同时选择。 配置多对多关系思路:多对多关系,应该有一个中间表,用于关联,关联表至少两个字段,就是两张表的 阅读全文
posted @ 2022-01-11 14:19 青仙 阅读(53) 评论(0) 推荐(0) 编辑
摘要:级联删除 使用CodeFirst创建的外键约束默认都开启了级联删除,如下图就是通过CodeFirst创建的数据库,而且孩子表里还有父亲表的主键作为外键。 但是,我们试着删除它父亲的时,发现能直接删除,如图 就是因为使用codefirst创建的数据表的外键默认都开启了级联删除,也就是删除一个,可以删除 阅读全文
posted @ 2022-01-11 14:15 青仙 阅读(125) 评论(0) 推荐(0) 编辑
摘要:给学生实体添加一个外键,使用父母表的Id作为外键 首先要搞清楚,给学生表添加外键是什么意思,就是一个学生只能有一个父母,但是父母可能有多个孩子,所以学生与父母之间的关系为一对多。给学生表添加外键就代表学生是一,父母是多。 步骤一: 在学生表里写一个外键字段,和一个导航属字段。导航属性字段的作用目前理 阅读全文
posted @ 2022-01-11 14:09 青仙 阅读(49) 评论(0) 推荐(0) 编辑
摘要:在CodeFirsrt的实体里配置字段的限制 通过配置,我们可以设置数据库里字段的长度,等等 比如:在模型中表的映射(实体)中没有给字段设置限制,比如长度等等,它在创建数据库的时候会默认设置为最大长度。 调用EF创建数据库后字段的长度如下: 实体里给字段添加限制 可以看到,添加限制缺少引用,因为这个 阅读全文
posted @ 2022-01-11 14:04 青仙 阅读(83) 评论(0) 推荐(0) 编辑
摘要:创建CodeFirst codefirst是代码优先,就是你自己手动创建模型,模型设计完毕后执行即可为你创建数据库了 第一步,创建一个空的MVC 如下图: 第二步,创建实体 创建一个类库,用来当做实体的库,在里面创建你想要建立的表的映射类。如下图: 在这个实体类里添加表的字段 第三步,创建上下文对象 阅读全文
posted @ 2022-01-11 14:02 青仙 阅读(52) 评论(0) 推荐(0) 编辑
摘要:方式1sql //后台控制器验证 if (ModelState.IsValid == false)//后台控制器模型验证,false表示未通过 { return Json("-1"); } FHZMEntities fHZMEntities = new FHZMEntities(); //fHZME 阅读全文
posted @ 2022-01-11 13:54 青仙 阅读(48) 评论(0) 推荐(0) 编辑
摘要:什么叫模型验证呢? 大概就是前台和后台都能使用模型来验证用户的信息是否为空或者是输入的长度是否符合标准等。 作用 方便验证,比如要验证在前台的文本框里输入的信息是否为空或者是否符合长度,前台单独验证的话就要在前台的js里获取该文本框,然后获取里面的值,判断是否为空,后台的话也是一样,接收前台传过来的 阅读全文
posted @ 2022-01-10 21:11 青仙 阅读(335) 评论(0) 推荐(0) 编辑
摘要:HTML帮助类: 作用: ①简化编写Html ②可以后MVC模型验证配合 用法 ①生成文本框 结果: ②文本框内容 ③指定内容 效果 ④指定属性 效果 ⑤指定内容为lamdba表达式 效果,下面圈起来的无视,但是name就是value值: ⑥下拉列表框 设置它自己的属性value: 效果: 这样写的 阅读全文
posted @ 2022-01-10 21:00 青仙 阅读(50) 评论(0) 推荐(0) 编辑
摘要:用实体操作数据库报错的查找 fHZMEntities.SaveChanges();报错 如下图: 第二步:将报错的行使用try括起来,单纯为了好找错误信息。然后在报错的行打断点,重新运行项目,到这个断点的时候按f11,也可以添加到监控,不过添加到监控的话要在执行这行之前就添加到监控。 第三步,在要运 阅读全文
posted @ 2022-01-10 20:54 青仙 阅读(112) 评论(0) 推荐(0) 编辑
摘要:使用EF执行更新操作 方法1,写sql语句 //实例化实体 FHZMEntities fHZMEntities = new FHZMEntities(); //参数化列表 List<SqlParameter> sqlParameterList = new List<SqlParameter>() { 阅读全文
posted @ 2022-01-10 20:48 青仙 阅读(614) 评论(0) 推荐(0) 编辑
摘要:删除操作 方法1,使用sql方式删除 这种方法比较简单,直接使用EF模型的实体执行Database.ExecuteSqlCommand命令即可,而且貌似也不用查询,直接让实体执行操作数据库的命令即可,效率也快一点儿,虽然简单,不过这种写法一点都不洋气,还是得看下面几种先进的方法。 //实例化对象模型 阅读全文
posted @ 2022-01-10 20:15 青仙 阅读(269) 评论(0) 推荐(0) 编辑
摘要:比如:使用EF的实体对象来查询用户表里的所有用户信息 方法一:写sql语句 //实例化实体 FHZMEntities fHZMEntities = new FHZMEntities(); //用实体来查数据 List<UserInfo> userList=fHZMEntities.Database. 阅读全文
posted @ 2022-01-10 20:07 青仙 阅读(569) 评论(0) 推荐(0) 编辑
摘要:1可以基于MVC框架创建EF实体模型 在建立好的mvc项目里面右键添加ado.net实体模型 2 这里选择从数据库生成,因为我们目前使用从数据库优先这种类型 3 新建连接 4 选择数据源和登录方式及数据库 5 选择是和上下文对象取名字 6选择数据库对象 7 点确定 8 可以看到实体里的字段和数据库里 阅读全文
posted @ 2022-01-10 18:42 青仙 阅读(121) 评论(0) 推荐(0) 编辑
摘要:ROM Object relational mapping:实体对象映射 作用:简化数据库查询。 比如:用ado操作数据库经常要写许多繁琐的操作 SqlConnection conn conn.open SqlCommand cmd cmd.ExecuteNonQuery/cmd.ExecuteSc 阅读全文
posted @ 2022-01-10 18:32 青仙 阅读(316) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示