日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql eager mode_MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug

發布時間:2024/9/19 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql eager mode_MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在將原有系統從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 classEmployee

{publicEmployee()

{

Contracts= new List();

LongLeaves= new List();

EmployeeSettlementSettings= new List();

}

[Key]public string BadgeNo { get; set; }public string Name { get; set; }public List Contracts { get; set; }public List LongLeaves { get; set; }public List EmployeeSettlementSettings { get; set; }

}

如果同時顯式加載(Eager Load)Contracts,LongLeaves和EmployeeSettlementSettings:

db.Employees.AsNoTracking()

.Include(i=>i.Contracts)

.Include(i=>i.LongLeaves)

.Include(i=>i.EmployeeSettlementSettings)

.ToList();

報下面的錯誤:

"String was not recognized as a valid Boolean."

如果僅僅預加載其中任意2項,則一切正常。

我又試驗了 MySQL Connector Net 6.7 Alpha版本,也存在相同的問題。

目前的解決辦法,一是改變獲取數據的方式(當然這只是權宜之計);二是改用商業組件:DevArt的dotConnect Professional,據說性能不錯,而且沒有這個bug,詳見這里:http://stackoverflow.com/questions/7712620/entity-framework-many-to-many-and-eager-loading

總結

以上是生活随笔為你收集整理的mysql eager mode_MySQL Connector Net 6.6.5 Entity Framework 显式预加载 Eager Load Bug的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。