EF 使用遇到过的错误记录备忘
1. is only supported for sorted input in LINQ to Entities The method :只支持排序输入实体LINQ 的方法
是使用skip()时没有排序时报的错误
2. Validation failed for one or more entities. 'See EntityValidationErrors' property for more details :验证失败的一个或多个实体。更多细节见“entityvalidationerrors”属性
修改数据字段的时候报的错误
2.1 关闭ef的实体检查
db.Configuration.ValidateOnSaveEnabled = false
2.2 查看entityvalidationerrors具体那个些字段没有通过

3. 当从数据库取出数据的时候对表中的数据项做扩张方法的时候,例如.ToString()报错。
错误代码:
var data = from d in Db.Members
where d.ID == User_Id
select new
{
d.ID,
d.Status
};
var result = from r in data
select new
{
status = r.Status.Display()
};
修改后:
var data = from d in Db.Members
where d.ID == User_Id
select new
{
d.ID,
d.Status
};
var result = from r in data.ToList()
select new
{
status = r.Status.Display()
};
刚取出数据的时候IQueryable<>的类型,把它转换成List();ToList()
4. An entity object cannot be referenced by multiple instances of IEntityChangeTracker:IEntityChangeTracker
单独使用DbContext对象操作
using (var db = new Context.Create())
{
//把使用过的DbContext对象都释放掉
}
5. entity framework在使用一对一的关系,添加数据不报错,但是数据添加不进去
错误的代码:
/**
* shop:是主表
* shopCertificate:是shop的从关系(外键)
* 直接new出外键不会报错,但也添加不了数据
* 表红的地方,进行外键绑定
* **/
using (var db = Context.Default)
{
var shop = new Shop()
{
Address = "qwe",
Banance = "asd",
Certificate = null,
City = "zxcf",
Description = "rty",
District = "fgh",
Logo = "vbn",
Memo = "uio",
Name = "jkl",
Provence = "nm",
Tax = 0.1m,
Status = ShopStatus.Abnormal,
Type = null
};
var shopCertificate = new ShopCertificate()
{
BankAccountName = "",
BankAccountNumber = "",
BankName = "",
BankNumber = "",
CompanName = "",
LegalPerson = "",
LegalPersonIDCardNumber = "",
LegalPersonIDCardPath = "",
LicenseNumber = "",
LicensePath = "",
Status = CompanyStatus.Abnormal,
Shop_Id = shop.ID,
TaxCertificateNumber = "",
TaxCertificatePath = "",
};
db.ShopCertificates.Add(shopCertificate);
db.Shops.Add(shop);
db.SaveChanges();
}
正确的做法
using (var db = Context.Default)
{
var shop = new Shop()
{
Address = "qwe",
Banance = "asd",
Certificate = null,
City = "zxcf",
Description = "rty",
District = "fgh",
Logo = "vbn",
Memo = "uio",
Name = "jkl",
Provence = "nm",
Tax = 0.1m,
Status = ShopStatus.Abnormal,
Type = null
};
//直接用shop的外键关系上再创建新的对象
//调试可以看到result值为2
shop.Certificate = new ShopCertificate()
{
BankAccountName = "",
BankAccountNumber = "",
BankName = "",
BankNumber = "",
CompanName = "",
LegalPerson = "",
LegalPersonIDCardNumber = "",
LegalPersonIDCardPath = "",
LicenseNumber = "",
LicensePath = "",
Status = CompanyStatus.Abnormal,
Shop_Id = shop.ID,
TaxCertificateNumber = "",
TaxCertificatePath = "",
};
db.Shops.Add(shop);
int result = db.SaveChanges();
}
EF 使用遇到过的错误记录备忘的更多相关文章
- [整理记录备忘]oracle数据库相关问题与解决
检查死锁方式 用dba用户执行以下语句,可以查看到被死锁的语句. select sql_text from v$sql where hash_value in (select sql_hash_val ...
- pywin32记录备忘
项目地址:http://sourceforge.net/projects/pywin32/ 文档地址:http://docs.activestate.com/activepython/2.7/pywi ...
- [整理记录备忘] CentOS 7 相关记录
CentOS 7 命令行模式安装GNOME.KDE图形界面 一.进入 root 模式 因为权限限制,所以我们需要进入 root 模式,开机使用 root 登陆或者系统运行中切换为 root 用户均可. ...
- 微信APP支付整体流程记录备忘
支付整体流程见文档:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3 商户系统和微信支付系统主要交互说明: 步骤1: ...
- Yii ActiveRecord用法记录备忘
ActiveRecord 使用方法 Example1 in查询 $criteria = new CDbCriteria(); $criteria->select = $select; $crit ...
- java+hadoop+spark+hbase+scala+kafka+zookeeper配置环境变量记录备忘
java+hadoop+spark+hbase+scala 在/etc/profile 下面加上如下环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_102 expor ...
- 增加几个entity framework 的函数 (记录备忘)[转]
public static class DatabaseExtensions { public static DataTable SqlQueryForDataTatable(this Databas ...
- httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!
2个类,一个基类,一个构建头信息调用类 关于如何获取到post中的内容,你之需要用http抓包工具把你与目标网站的请求信息抓下来后,打开分析下按照抓下来的包中的数 据进行构建就行了 using Sys ...
- freePBX汉化方法记录——备忘
FreePBX汉化[root@bgcc69:/var/www/html/admin/i18n/zh_CN/LC_MESSAGES]$pwd/var/www/html/admin/i18n/zh_CN/ ...
随机推荐
- List遍历删除 或取指定的前N项
class Program { static void Main(string[] args) { /* * List遍历删除 或取指定的前N项 */ List<PerSon> listP ...
- Java中的逆变与协变 专题
结论先行: PECS总结: 要从泛型类取数据时,用extends: 协变 要往泛型类写数据时,用super: 逆变 既要取又要写,就不用通配符(即extends与super都不用) 不变 List&l ...
- Lua中的协同程序 coroutine(转)
Lua中的协程和多线程很相似,每一个协程有自己的堆栈,自己的局部变量,可以通过yield-resume实现在协程间的切换.不同之处是:Lua协程是非抢占式的多线程,必须手动在不同的协程间切换,且同一时 ...
- QT延时方法整理(QTimer::singleShot,QWaitCondition,QDateTime.secsTo三种新方法)
1: void QTimer::singleShot ( int msec, QObject * receiver, const char * member ) [static] 样例: #inclu ...
- 如何从一张图片中裁剪一部分距形图片另存为文件(使用Canvas.CopyRect)
如何从一张图片中裁剪一部分距形图片另存为文件? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiMultimedia/html/delp ...
- CMake编译Qt程序+UI+Resources
今天给大家讲解一下Cmake如何编译Qt程序. 这里说的Qt程序不只是用QtCreator写出来的程序,当然也可以是文本编辑器….这里说的Qt程序是指,QCoreApplication,QApplic ...
- hdu4616_Game_树形DP
以为很水的一道题,花了大半天的时间才搞定,比赛的时候卡在这题上了,伤不起啊... 题意:给一棵树,每个结点中有礼物,每个礼物有一个权值,某些结点中会有陷阱,你可以从任何一点出发,每个结点最多只能经过一 ...
- centos yum 安装 jdk1.8
JDK: 版本:1.8 服务器默认安装1.7,所以不使用默认安装 yum -y list java* --查看yum的jdk安装包 yum install java-1.8.0-openjdk jav ...
- Kafka笔记5
Kafka使用zookeeper来维护集群成员的信息.每个broker都有一个唯一标识符,这个标识符可以在配置文件指定,也可以自动生成. 在broker停机,出现网络分区或者长时间垃圾回收停顿时,br ...
- 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了
其实在我们日常的编程中,对于缩放手势的使用并不是很经常,这一手势主要是用在图片浏览方面,比如下方例子.但是(敲重点),作为 Android 入门的基础来说,学习 ScaleGestureDetecto ...