实际项目中遇到EF实体类的操作问题及操作方法
之前一直做ASP,都是直接写数据库操作语句,但是现在使用linq或者EF了,具体数据库操作不会了,遇到几个问题,然后经过查找资料解决了,记录一下。
一、遇到序列化问题
遇到循环引用问题,我的项目是一个学生表,有关联classID和成绩表,造成循环引用,查询了一下可以用如下博客的做法,将循环忽略,这样就会不报错输出,但是输出的内容不是你想要的了,想得到原来的内容,就要对输出的内容做处理才行。我的做法是将查询到的数据重新赋值给一个自定义的类,然后将自定义的类再序列化,后来发现这个操作其实跟自定义序列化数据起的作用是一样的。
http://www.cnblogs.com/kangao/p/5382733.html
二、遇到类似in查询问题
可以采用contains,可以使用表的某字段contains(条件),也可以反过来条件contains(表的某字段)。
三、遇到同表多条件联合查询问题
建议使用级联操作就好了,一个list<类>后增加多个where查询即可解决
四、遇到多表联合查询问题
我的项目是用户输入查询条件,比如班级名称,我需要根据查询条件找到班级ID,然后根据班级ID找到改班级的学生名单,但是由于用户输入的条件可能不全,或者根据用户的输入条件会得到多个班级ID,这样再去查找学生名单。没办法用where那一套了, 然后就用了这样一个联合写法:
var ClassID = from Class in ef.StudentClasses join student in ef.Students on Class.ClassId equals student.ClassId where Class.ClassName.Contains(ClassName) select Class.ClassId;
然后再使用:
StudentList = StudentList.Where(a => classID.Contains(a.ClassId)).ToList();
五、序列化时间带T问题
网上一搜一大堆,这个方法最好用了,只是IsoDateTimeConverter 在命名空间using Newtonsoft.Json.Converters;下,要增加引用
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
JsonConvert.SerializeObject(要序列化的对象,timeFormat);
搞定!
最新文章
- 洛谷P2412 查单词 [trie树 RMQ]
- TD Rigging Demo Reel 性感美女绑定展示
- iOS8下bundle路径变更
- UML类图五种关系与代码的对应关系
- getsockname和getpeername
- 第一章 Web MVC简介
- (转)博弈问题与SG函数
- PetShop学习第四天
- 低级错误之Hbm中类型不一致错误
- c++ 弧度值与角度值的转换
- WordPress Design Approval System插件‘step’参数跨站脚本漏洞
- Adding Swap Files
- DedeCMS官方手册
- FusionChart实现金字塔分布图
- VS2010 编译 sqlite3 生成动态库和链接库
- 腾讯AlloyTeam发布AlloyLever - 开发调试发布错误监控上报用户问题定位尽在1kb代码
- JAVA_SE基础——28.封装
- zabbix实现自定义监控
- QTP测试.NET程序的时候,ComboBox下拉框控件选择后,运行时对象不可见解决方案
- SET ANSI_WARNINGS { ON | OFF }
热门文章
- ThreadLocal刨根问底
- Python嫌多(线程/进程)太慢? 嫌Scrapy太麻烦?没事,异步高调走起!——瓜子二手车
- 在图像中隐藏数据:用 Python 来实现图像隐写术
- Python人脸识别 + 手机推送,老板来了你就会收到短信提示
- 谈谈Nginx和php之间是交互与通信的方式
- Mixed Precision Training —— caffe-float16
- NoisyStudent:
- C#LeetCode刷题-广度优先搜索
- asp.netcore3.1 将服务器配置为需要证书
- Jsp内置对象application之统计浏览网页的次数