Heim > Datenbank > MySQL-Tutorial > MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager_MySQL

MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 13:35:30
Original
1047 Leute haben es durchsucht

bitsCN.com

在将原有系统从MSSQL迁移到MySQL时,遇到莫名其妙的问题,经过排除大法反复试验,锁定问题出自MySQL官方出品的Entity组件。又经过网上搜索,发现类似问题存在由来已久 http://bugs.mysql.com/bug.php?id=46142,至今也没彻底解决。

bug报告地址:http://bugs.mysql.com/bug.php?id=68886

环境:Entity Framework 4.3.1,数据库 MySQL 5.6.10, .NET 4.0

定义下面的类:

    public class Employee    {        public Employee()        {            Contracts = new List<contract>();            LongLeaves = new List<longleave>();            EmployeeSettlementSettings = new List<employeesettlementsetting>();        }        [Key]        public string BadgeNo { get; set; }        public string Name { get; set; }        public List<contract> Contracts { get; set; }        public List<longleave> LongLeaves { get; set; }        public List<employeesettlementsetting> EmployeeSettlementSettings { get; set; }    }</employeesettlementsetting></longleave></contract></employeesettlementsetting></longleave></contract>
Nach dem Login kopieren

如果同时显式加载(Eager Load)Contracts,LongLeaves和EmployeeSettlementSettings:

db.Employees.AsNoTracking().Include(i => i.Contracts).Include(i => i.LongLeaves).Include(i => i.EmployeeSettlementSettings).ToList();
Nach dem Login kopieren

报下面的错误:

"String was not recognized as a valid Boolean."
Nach dem Login kopieren

如果仅仅预加载其中任意2项,则一切正常。

我又试验了 MySQL Connector Net 6.7 Alpha版本,也存在相同的问题。

目前的解决办法,一是改变获取数据的方式(当然这只是权宜之计);二是改用商业组件:DevArt的dotConnect Professional,据说性能不错,而且没有这个bug,详见这里:http://stackoverflow.com/questions/7712620/entity-framework-many-to-many-and-eager-loading

 

 

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage