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 使用遇到过的错误记录备忘的更多相关文章

  1. [整理记录备忘]oracle数据库相关问题与解决

    检查死锁方式 用dba用户执行以下语句,可以查看到被死锁的语句. select sql_text from v$sql where hash_value in (select sql_hash_val ...

  2. pywin32记录备忘

    项目地址:http://sourceforge.net/projects/pywin32/ 文档地址:http://docs.activestate.com/activepython/2.7/pywi ...

  3. [整理记录备忘] CentOS 7 相关记录

    CentOS 7 命令行模式安装GNOME.KDE图形界面 一.进入 root 模式 因为权限限制,所以我们需要进入 root 模式,开机使用 root 登陆或者系统运行中切换为 root 用户均可. ...

  4. 微信APP支付整体流程记录备忘

      支付整体流程见文档:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3   商户系统和微信支付系统主要交互说明:     步骤1: ...

  5. Yii ActiveRecord用法记录备忘

    ActiveRecord 使用方法 Example1 in查询 $criteria = new CDbCriteria(); $criteria->select = $select; $crit ...

  6. java+hadoop+spark+hbase+scala+kafka+zookeeper配置环境变量记录备忘

    java+hadoop+spark+hbase+scala 在/etc/profile 下面加上如下环境变量 export JAVA_HOME=/usr/java/jdk1.8.0_102 expor ...

  7. 增加几个entity framework 的函数 (记录备忘)[转]

    public static class DatabaseExtensions { public static DataTable SqlQueryForDataTatable(this Databas ...

  8. httpwebrequest 模拟登录 获取cookies 以前的代码,记录备忘!

    2个类,一个基类,一个构建头信息调用类 关于如何获取到post中的内容,你之需要用http抓包工具把你与目标网站的请求信息抓下来后,打开分析下按照抓下来的包中的数 据进行构建就行了 using Sys ...

  9. freePBX汉化方法记录——备忘

    FreePBX汉化[root@bgcc69:/var/www/html/admin/i18n/zh_CN/LC_MESSAGES]$pwd/var/www/html/admin/i18n/zh_CN/ ...

随机推荐

  1. Android各版本对应的SDK和JDK版本

    原文:Android各版本对应的SDK和JDK版本 一.Android各版本对应的SDK版本: 平台版本 SDK版本 版本名称 Android 8.0 26 Oreo Android 7.1 25 N ...

  2. windows下捕获dump之Google breakpad_client

    breakpad是Google开源的一套跨平台工具,用于dump的处理.很全的一套东西,我这里只简单涉及breakpad客户端,不涉及纯文本符号生成,不涉及dump解析. 一.使用 最简单的是使用进程 ...

  3. 使用NAudio实现Wav转Mp3

    转换成MP3: using Microsoft.Win32; using NAudio.MediaFoundation; using NAudio.Wave; using System.Windows ...

  4. Android零基础入门第45节:GridView简单使用

    原文:Android零基础入门第45节:GridView简单使用 前面一共用了8期来学习ListView列表的相关操作,其实学习的ListView的知识完全适用于AdapterView的其他子类,如G ...

  5. Play Framework 模板里使用注入访问数据层

    从Play2.4开始,推荐使用依赖注入替代静态控制器.因此我们不能像play2.3那样,在模板里直接调用object访问数据层.是的,我们还是可以使用常规方式,通过传参到模板里.不过这样很多时候不方便 ...

  6. SIP:用Riverbank的SIP创建C++库的Python模块(把自己的C++库包装成Python模块)

    我们发现PyQt做的Python版的PyQt是如此好用,如果想把自己的C++库包装成Python模块该如何实现呢? 这里介绍下用SIP包装C++库时值得参考的功能实现: 需要Python模块中实现C+ ...

  7. asp.net mvc下实现微信公众号(JsApi)支付介绍

    本文主要讲解asp.net mvc框架下公众号支付如何实现,公众号支付主要包括三个核心代码,前台调起支付js代码.对应js调用参数参数生成代码.支付成功处理代码. 一.微信支付方式介绍 微信提供了各种 ...

  8. vue+TS(CLI3)

    1.用CLI3创建项目 查看当前CLI的版本,如果没有安装CLI3的  使用npm install --global vue-cli来安装CLI 安装好CLI 可以创建项目了 使用vue create ...

  9. 创建服务消费者(Feign)

    概述 Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单.使用 Feign,只需要创建一个接口并注解.它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS ...

  10. mysql查询类型转换问题

    mysql转换类型.类型转换.查询结果类型转换 一.问题来源 数据库一张表的主键id设为了自增,那就是int型的,但是其他表的关联字段又设置成了字符串! 而且已经开发了很久才发现问题,既然出现了问题肯 ...