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 寮傛缂栫▼娉ㄦ剰瑕佺偣的主要内容,如果未能解决你的问题,请参考以下文章

缂栫▼璇█閫夋嫨璁帮紙涓€锛?| 澶х嫍缂栫▼瀹囧畽

C Const

iOS涔嬮挜鍖欎覆鍔犲瘑瑙e瘑

java璁剧疆鐜鍙橀噺

鏇挎崲OSD鎿嶄綔鐨勪紭鍖栦笌鍒嗘瀽