实际项目中遇到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);
搞定!
实际项目中遇到EF实体类的操作问题及操作方法的更多相关文章
- Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作
Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...
- Abp项目中的领域模型实体类访问仓储的方法
首先声明,不推荐使用这种方法.实体访问仓储是不被推荐的! 1.简单粗暴的方法 Abp.Dependency.IocManager.Instance.Resolve>(); 2.绕个弯子的方法 首 ...
- EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的
我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...
- EF + WCF学习笔记——EF实体类序列化
项目中如果 EF + WCF 结合使用,模式应该是EF负责读取数据库,传递数据对象给WCF,WCF再将这些对象传送给客户端.因为WCF传送的对象需要序列化,而EF默认生成的对象并没有序列化,很可能会出 ...
- EF实体类配置总结
实体类配置总结 Entity Framework 6 Code First 实践系列(1):实体类配置总结 2014-03-25 12:58 by TJerry, 719 阅读, 6 评论, 收藏, ...
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...
- BIM工程信息管理系统-EF实体框架数据操作基类
EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// & ...
- [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?
Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...
- 在动态sql的使用where时,if标签判断中,如果实体类中的某一个属性是String类型,那么就可以这样来判断连接语句:
在动态sql的使用where时,if标签判断中,如果实体类中的某一个属性是String类型,那么就可以这样来判断连接语句: 如果是String类型的字符串进行判空的时候: <if test=&q ...
随机推荐
- opencv图片缩放与镜像
一个练习的代码,先对图片进行缩放,然后再做镜像: import cv2 import numpy as np img = cv2.imread("src.jpg", 1) cv2. ...
- 网易云音乐ncm格式分析以及ncm与mp3格式转换
目录 NCM格式分析 音频知识简介 两种可能 GitHub项目 格式分析 总体结构 密钥问题 代码分析 main函数 导入模块 dump函数 参考资料 代码完整版 转换工具 ncmdump ncmdu ...
- Flutter 容器(5) - SizedBox
SizedBox: 两种用法:一是可用来设置两个widget之间的间距,二是可以用来限制子组件的大小. import 'package:flutter/material.dart'; class Au ...
- Flutter build apk 如何访问网络
将下列配置放到路径:your_project\android\app\src下的 main 文件夹下的 AndroidManifest.xml 和 profile 文件夹下的 AndroidManif ...
- jieba分词的几种形式
1.精确模式:试图将句子最精确地分开,适合文本分析 seg_list = jieba.cut(test_text, cut_all=False) seg_list = " ".jo ...
- day12 异常 模块 单例
1.异常 处理 在程序执行过程中 ,发生,影响程序的正常运行 在python中 异常就是一个错误 try .... except....捕获异常 try 用来检测t ...
- offer收割机也有方法论
秋招的战火就像这夏天的温度一样炙热,陆陆续续很多学弟学妹问我秋招的注意事项,作为温暖型大叔的我此刻必须出场了. 看仔细了,接下来龙叔就把这offer收割机的秘密都告诉你们. 如果你还没点关注的话,记得 ...
- Android 找不到所标识的资源 java.lang.NoSuchFieldError: No static field XXX of type I in class Lcom/XX/R$id
报错: java.lang.NoSuchFieldError: No static field XXX of type I in class Lcom/XXX/R$id; or its supercl ...
- MIT 6.828 Lab 1/ Part 2
Exercise 03 - obj/boot/boot.asm 反汇编文件 截取asm部分文件并注释理解 # Set up the important data segment registers ( ...
- adb命令将抓包工具证书从用户目录移动至系统目录,解决反爬对于本地证书认证
代码和注释 adb shell #连接手机进入shell模式 #su root #如果你不root权限可以试着这个一般都是root cd /data/misc/user/0/cacerts-added ...