EF Core 寮傛缂栫▼娉ㄦ剰瑕佺偣
Posted dotNET璺ㄥ钩鍙?/a>
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF Core 寮傛缂栫▼娉ㄦ剰瑕佺偣相关的知识,希望对你有一定的参考价值。
馃摙娆㈣繋鐐硅禐 锛氿煈?鏀惰棌 猸愮暀瑷€ 馃摑 濡傛湁閿欒鏁鎸囨锛岃祼浜虹帿鐟帮紝鎵嬬暀浣欓锛?/p>
馃摙浣滆€呮牸瑷€锛氱敓娲诲湪浜庢姌鑵撅紝褰撲綘涓嶆姌鑵剧敓娲绘椂锛岀敓娲诲氨寮€濮嬫姌鑵句綘锛岃鎴戜滑涓€璧峰姞娌癸紒馃挭馃挭馃挭
馃帍 搴忚█
涓嶅緱涓嶈锛屽紓姝ュ拰绾跨▼鎬ц兘闂涓€鐩存槸楂樺苟鍙戠殑澶ф晫銆?/p>
鑰?net core 鑷粠璇炵敓灏变笉鏂湴鎻愬崌鎬ц兘锛岀洰鍓嶇殑.net 6鏈変竴閮ㄥ垎涔熸槸涓撻棬鍦ㄤ紭鍖栨€ц兘鏂归潰鐨勫紑閿€锛岃€屾渶杩戞垜闃呰EF Core鐨?RoadMap鏃讹紝涔熸鍠滅殑鍙戠幇杩欎釜鐢卞皬鍥㈤槦缁存姢鐨勭被搴擄紝涔熷紑濮嬮€愭涓烘€ц兘鐨勬彁鍗囧仛鍑烘敼鍙樸€?/p>
EF Core鍥㈤槦鐗瑰埆鏄湁涓€娈佃瘽浠や汉鎯婂枩锛氫粬浠皢瀵规爣DapperLib搴撲紭鍖栨€ц兘锛屽苟闅?net 6涓€璧峰彂甯冦€?/p>
馃帍 01.EF Core 涓嶆敮鎸佸湪鍚屼竴涓婁笅鏂囧疄渚嬩笂杩愯澶氫釜骞惰鎿嶄綔
EF Core 涓嶆敮鎸佸湪鍚屼竴涓婁笅鏂囧疄渚嬩笂杩愯澶氫釜骞惰鎿嶄綔銆傚簲濮嬬粓绛夊緟鎿嶄綔瀹屾垚锛岀劧鍚庡啀寮€濮嬩笅涓€涓搷浣溿€傝繖閫氬父鏄€氳繃鍦ㄦ瘡涓紓姝ユ搷浣滀笂浣跨敤 await
鍏抽敭瀛楀畬鎴愮殑銆?/p>
鍥犳涓嶈鑷綔鑱槑 涓嶄娇鐢╝wait 锛屾斁浠绘搷浣滆嚜宸辨墽琛岋紝瀵勫笇鏈涗簬寮傛涓嶅奖鍝嶄富绾跨▼銆?/span>
馃帍 02. 鏈嶅姟绔笌瀹㈡埛绔紓姝?LINQ 杩愮畻绗?/h1>
涓轰簡鏀寔寮傛鎵ц LINQ 鏌ヨ锛?code class="mq-18">Microsoft.EntityFrameworkCore 鍛藉悕绌洪棿涓畾涔?EF Core 寮傛鎵╁睍鏂规硶銆?br class="mq-19">EF Core 鎻愪緵浜嗕竴缁勫紓姝ユ墿灞曟柟娉曪紝杩欎簺鏂规硶鎵ц鏌ヨ骞惰繑鍥炵粨鏋溿€傝繖浜涘搴斾簬鏍囧噯鐨勫悓姝?LINQ 杩愮畻绗﹀寘鎷?ToListAsync銆丼ingleAsync銆丄sAsyncEnumerable 绛夛細
var blogs = await context.Blogs.Where(b => b.Rating > 3).ToListAsync();
鏈嶅姟绔紓姝?LINQ 杩愮畻绗﹀彧鑳藉湪 EF 鏌ヨ涓婁娇鐢?涓嶈兘灏嗗叾涓庡鎴风 LINQ to Objects 鏌ヨ涓€璧蜂娇鐢ㄣ€傝嫢瑕佸湪 EF 涔嬪鎵ц瀹㈡埛绔紓姝?LINQ 鎿嶄綔锛岃浣跨敤 system.exception 鍖?姝ゅ寘瀵逛簬鍦ㄥ鎴风涓婃墽琛屾棤娉曞湪鏈嶅姟鍣ㄤ笂杩涜姹傚€肩殑鎿嶄綔鏃剁壒鍒湁鐢ㄣ€?/p>
閬楁喚鐨勬槸锛屽紩鐢?system.exception 鍜屾湇鍔$ LINQ 杩愮畻绗︿笂鍑虹幇涓嶆槑纭殑璋冪敤缂栬瘧閿欒;杩欎娇寰楅毦浠ュ湪鍚屼竴椤圭洰涓娇鐢?EF 鍜?System.object銆傝嫢瑕佽В鍐虫闂锛岃灏?AsQueryable 娣诲姞鍒?DbSet锛?/p>
var groupedHighlyRatedBlogs = await context.Blogs
.AsQueryable()
.Where(b => b.Rating > 3) // server-evaluated
.AsAsyncEnumerable()
.GroupBy(b => b.Rating) // client-evaluated
.ToListAsync();
馃帍 03. 骞惰寮傛鏁版嵁搴撹繛鎺ユ柟娉曟參鎴栭樆濉?/h1>
濡傛灉鏈€灏忓苟鍙戞睜瀛愭暟娌¤璁剧疆锛屽垯浼氬鑷村紓姝ヨ繛鎺ュ彉鎱紝鍚屾杩炴帴鍑犱箮涓嶅彈褰卞搷锛屽洜姝わ紝榛樿鏋勫缓sql杩炴帴瀛楃涓叉椂锛屽鍔犳渶灏忔睜瀛愭暟鍙傛暟銆?/p>
娣诲姞涓€涓狹inPoolSize涓?00鐨勮繛鎺ュ瓧绗︿覆銆傚鏋滀綘鍔犵殑鏁板瓧澶т簬100锛屼綘闇€瑕佹敼鍙楳axPoolSize锛屽洜涓哄叾榛樿鍊间负100锛屼笖涓嶈兘灏忎簬MinPoolSize鐨勫€笺€?/p>
瀵逛簬姹犺繛鎺ワ紝璇峰湪浣犵殑杩炴帴瀛楃涓蹭腑娣诲姞Pooling=true锛屽湪浣犵殑闈炴睜杩炴帴涓坊鍔燩ooling=false
馃帍 04. 寮傛璇诲彇澶ф暟鎹?浜岃繘鍒讹紝鏂囨湰锛屽浘鐗?闈炲父鎱?/h1>
寮傛璇诲彇10MB鐨刅ARBINARY(MAX)鍊煎ぇ绾﹂渶瑕?绉掞紝鑰屽悓姝ヨ鍙栫浉鍚岀殑鍊煎ぇ绾﹂渶瑕?0姣銆傚皢鏁版嵁澶у皬澧炲姞鍒?0MB灏嗕娇杩愯鏃堕棿澧炲姞鍒板ぇ绾?2绉掋€?/p>
鏄殑锛岃繖涓棶棰橈紝鐩墠杩?span class="mq-37">娌℃湁瑙e喅锛屽叾娑夊強鍒?Zero Copy闂浠ュ強鍏朵粬鐨勪竴浜涚嚎绋嬪崗璋冮棶棰橈紝鍥犳锛屼及璁f Core 6涔嬪墠鏄笉鍙兘琚В鍐崇殑锛屽洜姝ゆ渶濂界殑鏂规鏄?nbsp;鏆傛椂浣跨敤鍚屾鏂规硶銆?/span>
馃帍 05.杩炴帴姹犲埌搴曡缃澶э紵
涓ユ牸鏉ヨ锛岃繖涓嶆槸EF鐨勯棶棰橈紝鏁版嵁搴撹繛鎺ユ睜鏄痗lient鏂归潰鐨勪簨鎯咃紝涓嶈繃涔熸槸鍥版儜鎴戝緢涔呯殑闂锛岃繖閲岀粰鍑虹瓟妗堛€?/p>
鍙傝€冨€硷細 杩炴帴鏁?= ((鏍稿績鏁?* 2) + 鏈夋晥纾佺洏鏁?
杩欎竴鍏紡涓嶄粎閫傜敤浜庢暟鎹簱杩炴帴姹犵殑璁$畻锛屽ぇ閮ㄥ垎娑夊強璁$畻鍜孖/O鐨勭▼搴忥紝绾跨▼鏁扮殑璁剧疆閮藉彲浠ュ弬鑰冭繖涓€鍏紡銆?/p>
鍥犳寰蒋榛樿鐨勬睜瀛愭暟鏄?0-100銆傝€岀敱浜庡绾跨▼鐨勭鐞嗕笉鍠勶紝鎴戜滑鐨勫簲鐢ㄤ竴鑸細璁剧疆 100-1000宸﹀彸锛屽搱鍝堬紝杩欏氨鏄帶鍒剁殑宸窛銆?/p>
鎴戜滑缁忓父瑙佸埌涓€浜涘皬瑙勬ā鐨剋eb搴旂敤锛屽簲浠樼潃澶х害鍗佹潵涓殑骞跺彂鐢ㄦ埛锛屽嵈浣跨敤鐫€涓€涓?00杩炴帴鏁扮殑杩炴帴姹犮€傝繖浼氬浣犵殑鏁版嵁搴撻€犳垚鏋佸叾涓嶅繀瑕佺殑璐熸媴銆?/p>
馃帍 06. 灏忕粨
鏅氫笂鏈変簨鎯咃紝鍙兘涓婄彮鐨勬椂鍊欐娊绌烘€荤粨涓嬨€?/p>
鍏绘垚涓€涓ソ涔犳儻锛岄渶瑕佷笉鍋滅殑婵€鍔卞拰榧撳姳锛屽啓浣滅殑鑳藉姏涔熻灏辨槸涓嶆柇鐨勫啓涓彁鍗囩殑锛屽綋鐒惰繕鏈夎嚜韬殑棰濊兘鍔涳紝鍦ㄤ笉鏂殑杈撳嚭杩囩▼涓紝鍙戠幇鑷繁鐨勪笉瓒充互鍙婂珐鍥鸿嚜宸辩殑鐭ヨ瘑銆?/p>
30澶╀笉鍋滄洿锛岀洰鏍囧緢杩滃ぇ锛屽姞娌癸紒
渚嬭灏忕粨锛岀悊鎬х湅寰咃紒
缁撶殑鏄暐鍟婏紝缁撶殑鏄垜鎯充綘鐐硅禐鑰屼笉鍙緱鐨勫瘋瀵炪€傪煒仇煒仇煒?/p>
馃憮閮界湅鍒拌繖浜嗭紝杩樺湪涔庣偣涓禐鍚楋紵
馃憮閮界偣璧炰簡锛岃繕鍦ㄤ箮涓€涓敹钘忓悧锛?/p>
馃憮閮芥敹钘忎簡锛岃繕鍦ㄤ箮涓€涓瘎璁哄悧锛?/p>
以上是关于EF Core 寮傛缂栫▼娉ㄦ剰瑕佺偣的主要内容,如果未能解决你的问题,请参考以下文章