当前位置: 首页 > news >正文

使用EntityFramework8的学习和开发过程中一些经验

前言:

        本篇文章主要记录自己在EF8的学习和使用过程中的碰到一些坑和自己琢磨的一些解决问题的方法以及过程。

问题汇总:

        一、Code First 模式下生成表中字段的没有按照我们想要的次序排列

        实体上增加注解    [Column(Order = 0)] 可以通过Order来控制字段在表中的排序问题。看微软的文档是可以这样弄的,but我几次都没有生效,不知道是不是因为数据库是mysql的原因。这个注解对于已经生成的表是无效的。

        二、如何控制ViewModel中的字段是否必填

        不知道是不是设置不对,发现字段上不加Require,在ViewModel使用过程中,也会提示必输,解决方法是字段的类型后加?

        三、Id字段的处理

        我使用的是GUID,在ViewModel中使用string类型就好了。加?号,解决必输的问题,因为这个字段值我们需要的数据库来给我们自动生成就好了。后面如果页面传递需要用到那么再代码里面转换为Guid。

var id = new Guid(uid);

        四、一些字段Model中是非空的,但是ViewModel中我们是后台处理后填充值的

        这个问题简单,类似ID的出,那么就在ViewModel中允许字段不是必填,类型后面加?

        五、使用了Identity框架中,如何获取当前登录的用户

        首先你必须先把UserManager注入到你需要用到的controller中      

dentityUser user = await _userManager.GetUserAsync(HttpContext.User);

        注意GetUserAsync是异步方法,需要加await

        六、 选择框和按钮在同一行情况下,如果转换到手机页面会重叠

       我找到的解决方法是css里面写一个屏幕如果小于一定值才生效的类,然后给到选择框

@media screen and (max-width: 768px) {.buttom10 {margin-bottom:10px;}
}

        七、bootstrap框架下如何获取select选中的text

$("#materialId").find("option:selected").text()

        八、如果表存在外键的情况下,以在代码就有问题

    var  production = _dbContext.Productions.Where(u => u.id == productionGuid).AsNoTracking().FirstOrDefault();BomHead head = new BomHead{createTime = DateTime.Now,createUser = user.UserName,production = production,ifDel = false,description = description};

        在savechanges()会直接报错如下

 MySqlConnector.MySqlException (0x80004005): Duplicate entry '08dcb21f-ad15-4187-8cc6-b01f04af97dc' for key 'production.PRIMARY'

        没搞明白什么问题,但是去掉了AsNoTracking()就一切正常了!!!如果有明白的高手能否解释下。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Webpack、Vite区别知多少?
  • Linux Ubuntu 20.04 netmap安装
  • OD C卷 - 中庸行者
  • 第128天:内网安全-横向移动IPCATSC 命令Impacket 套件CS 插件全自动
  • 代码随想录 day 30 贪心
  • RabbitMQ应用场景及特性
  • PointMC: Multi-instance Point Cloud Registration based on Maximal Cliques 论文解读
  • 经典算法KMP讲解,包含C++解法ACM模式
  • Python脚本实现USB自动复制文件
  • ADC模数转换在stm32上的应用
  • C语言基础题:硬币问题(C语言版)
  • 蚂蚁0511笔试-选择题
  • 9-springCloud集成nacos config
  • btslab靶场-通过xss获取他人cookie并利用
  • 【vue2+elementui】记录el-upload导入文件:只上传一个文件,且再次上传会覆盖上一个文件
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 2017 年终总结 —— 在路上
  • CSS魔法堂:Absolute Positioning就这个样
  • Facebook AccountKit 接入的坑点
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • leetcode46 Permutation 排列组合
  • PHP 7 修改了什么呢 -- 2
  • Quartz初级教程
  • Sublime text 3 3103 注册码
  • ------- 计算机网络基础
  • 技术:超级实用的电脑小技巧
  • 前端学习笔记之观察者模式
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 数据结构java版之冒泡排序及优化
  • 通过几道题目学习二叉搜索树
  • 消息队列系列二(IOT中消息队列的应用)
  • 用Python写一份独特的元宵节祝福
  • 智能合约开发环境搭建及Hello World合约
  • # 透过事物看本质的能力怎么培养?
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (7)STL算法之交换赋值
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (void) (_x == _y)的作用
  • (二十四)Flask之flask-session组件
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (四)库存超卖案例实战——优化redis分布式锁
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net反编译工具
  • .NET企业级应用架构设计系列之结尾篇
  • .NET未来路在何方?
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • [000-01-030].Zookeeper学习大纲
  • [04]Web前端进阶—JS伪数组
  • [20161214]如何确定dbid.txt
  • [20190416]完善shared latch测试脚本2.txt