Entity Framework Core 8: Improved JSON, queryable collections , and more… | .NET Conf 2023

  Рет қаралды 36,001

dotnet

dotnet

Күн бұрын

Entity Framework Core 8 (EF8) introduces several new highly-requested features, as well as major underlying infrastructure changes setting up EF Core for future enhancements. The new EF8 features include:
Chapters:
00:00 Welcome
00:44 Document vs Relational Databases
02:07 Use JSON to send multi-value parameters for translations such as `List.Contains`
03:15 Mapping and querying collections of primitive types
10:55 Mapping to JSON columns using SQLite
13:53 Leverage the new support for performance improvements, e.g. when using Contains
16:42 Use C# structs with DDD value object semantics in your classes while still splitting the contents to multiple columns in the database
23:58 Raw SQL queries for unmapped types
27:53 Official `HierarchyId` support for EF Core on SQL Server
33:29 In Summary Improvements to lazy loading and the change tracking APIs
36:02 Many small enhancements to existing features
aka.ms/ef8-whats-new
36:26 A MongoDB Provider for EFCore
aka.ms/efcore-mongodb
38:00 Thanks
- Further JSON support in relational databases, including:
- Use JSON to send multi-value parameters for translations such as `List.Contains`
- Mapping and querying collections of primitive types
- Mapping to JSON columns using SQLite
- Leverage the new support for performance improvements, e.g. when using Contains
- Use C# structs with DDD value object semantics in your classes while still splitting the contents to multiple columns in the database
- Raw SQL queries for unmapped types
- Official `HierarchyId` support for EF Core on SQL Server
- Improvements to lazy loading and the change tracking APIs
- Many small enhancements to existing features
Join Arthur Vickers and Shay Rojansky from the EF team for a tour of these new features, with demos showing the JSON mapping and queries, and value type support.
Download .NET 8 - aka.ms/get-dotnet-8
Hack Together - aka.ms/hacktogether/dotnet
Learn collection - aka.ms/learn-dotnet-8
.NET 8 Survey - aka.ms/dotnet-survey
Local Events - aka.ms/dotnetconf-local-event
Hero blog - aka.ms/dotnet8blog
Blog: aka.ms/dotnet/blog
Twitter: aka.ms/dotnet/twitter
TikTok: aka.ms/dotnet/tiktok
Mastodon: aka.ms/dotnet/mastodon
LinkedIn: aka.ms/dotnet/linkedin
Facebook: aka.ms/dotnet/facebook
Docs: learn.microsoft.com/dotnet
Forums: aka.ms/dotnet/forums
🙋‍♀️Q&A: aka.ms/dotnet-qa
👨‍🎓Microsoft Learn: aka.ms/learndotnet
#dotnet

Пікірлер: 42
@davidmarron109
@davidmarron109 8 ай бұрын
I wasn't sure this would be worth 38 minutes of my life, but this is definitely worth it. Relational DBs solved a huge subset of problems, Doc DBs solved a different subset, and now you've taken a huge step towards merging both. This is important work you've done.
@MrStupiuno
@MrStupiuno 8 ай бұрын
I love the new inline primitive array support that works without any config!
@clouddeveloper4549
@clouddeveloper4549 8 ай бұрын
Well done! Solving real world problems and doing it in an elegant yet powerful way!
@ShakeelAhmed-xo3xz
@ShakeelAhmed-xo3xz 8 ай бұрын
Wonderful new features, I have been using EF/EF Core for many years, but this video surprised me and my future work and projects shall benefit from this knowledge. Thanks you both.
@IndigoDalliance
@IndigoDalliance 6 ай бұрын
Wow! Stunning! So glad I didn't miss this video.
@aqualinespirit90
@aqualinespirit90 8 ай бұрын
17:20 , this is really good, currently have to use predicates for that, glad it's been added to EF8.
@kabal911
@kabal911 8 ай бұрын
The best ORM in any language just keeps getting better ❤
@tarsisf8173
@tarsisf8173 8 ай бұрын
Fantastic job!
@gustavnilsson6597
@gustavnilsson6597 8 ай бұрын
You guys are rockstars!!
@derDooFi
@derDooFi 8 ай бұрын
i love these guys! wish this were longer, lol
@janakaaravinda2507
@janakaaravinda2507 7 ай бұрын
This is amazing thank you..
@milada424
@milada424 8 ай бұрын
this is awesome, great work thank you !
@keinegutennamen
@keinegutennamen 8 ай бұрын
Definitely one of my favorite talks.
@dvanrooyen1434
@dvanrooyen1434 8 ай бұрын
Hey guys - before we had table params we used that hack of using xml to pass in lists, - its not a new technique...
@onlyice
@onlyice 8 ай бұрын
Brilliant presentation.
@pureevil379
@pureevil379 8 ай бұрын
Brilliant
@OggVorbis69
@OggVorbis69 7 ай бұрын
Excellent work,. all the time it was said that RDBMS do not have concept of arrays I was thinking ... Postges?? the end clarification that the native capabilities are used there was just the cherry on top of very impressive work. Well done guys, I just enjoy seeing you two on my screen. Congratulations on the cool set of examples and their order. I was thinkin that the sample with at least one visit will be better written with IS NOT NULL, with more than one will be where the Visits column value length is > than the length of textual form of a single date, etc. but those are hacks in comparison with your clear / canonical solution. Hacks may be faster but the understandable and always working code is better, even when generated. Thanks a lot. I may just start using EF now. It is good enough for me not writing all my SQL by hand. And that is something keeping in mind I am doing it since SQL server 4.2 Again, thanks a lot. Your work should be a pleasure to use.
@SchattenPV
@SchattenPV 5 ай бұрын
Can you please give me a link to the video you mentioned @22:05? I'm very interested about the join aspect because we have some perf problems in our app with this topic
@mamg301988
@mamg301988 8 ай бұрын
Excellent, I'm going to update the version
@jaiderariza1292
@jaiderariza1292 Ай бұрын
@ajcvickers I wonder how we can handle discriminator with json, example if address in UK may have different format that address in US and we use like interface (IAddress) or base abstract class , silly sample but I wonder if this can be achieve by the new EF core json support?
@asdasdaa7063
@asdasdaa7063 4 ай бұрын
I love these guys so much, Microsoft's best speakers! Thanks for this love EF core!
@Joooooooooooosh
@Joooooooooooosh 7 ай бұрын
Unfortunately anything with JSON arrays can't be effectively indexed. Most of these queries will perform terribly on any large tables.
@HikingUtah
@HikingUtah 6 ай бұрын
What version of SQL Server first supported keywords such as OPENJSON? This is my first time hearing about it.
@zapaneer
@zapaneer 8 ай бұрын
Cool stuff. The section about collections of simple datatypes being mapped as JSON, does that apply to the Postgresql variant as well or does it natively support the Postgresql implementation of arrays (which I believe would be more efficient)? Maybe it is a question for the NPGSQL guys...
@zapaneer
@zapaneer 8 ай бұрын
Sry, It got answered later on by Shay
@jeremyflowers8908
@jeremyflowers8908 7 ай бұрын
Why are you guys not using CTEs or top instead of first for consistency when working with JSON (I'm presuming you are borrowing from Observables)? Also where are you storing the metadata to know what the composition of the JSON columns are within the database?
@pascalmbamungu3432
@pascalmbamungu3432 8 ай бұрын
What's the datatype for the column holding the json array?
@GregMontoya1
@GregMontoya1 8 ай бұрын
Automatically converting a .NET primitive array to a JSON formatted array as a parameter for a query is pretty nice. Now I won't have to do this manually.
@maxd5661
@maxd5661 8 ай бұрын
We have similar code running on SQL Server in production without EF (using direct SQL) and performance on larger data sets (few hundred thousand records) is terrible. Stay away from this on SQL Server if you are at all concerned about performance. SQL Server at its core is very behind the curve on native array and document support. This should work great on PostgreSQL though!
@OggVorbis69
@OggVorbis69 7 ай бұрын
Yeah, it is cool to write the query but performance is always an issue when the volume comes.
@Joooooooooooosh
@Joooooooooooosh 7 ай бұрын
Exactly. So much work was put into a feature that is pretty much an antipattern in the real world.
@maxd5661
@maxd5661 7 ай бұрын
@@Joooooooooooosh I mean at least it will actually work well on PostgreSQL. Maybe when SQL Server catches up to 2023 with native array and document support this will be a thing, but until then, this is a total waste of time of the EF team.
@infotips2475
@infotips2475 6 ай бұрын
How to handle it when 'Address' has another object? Does anyone have any ideas for configuration?
@thedreadedgman
@thedreadedgman 8 ай бұрын
is JSON parsing faster then query planning?
@xtonetware5493
@xtonetware5493 5 ай бұрын
will this work exact same way for postgre sql
@goodstas
@goodstas 7 ай бұрын
Thank you for this video. Great features. Could you provide the code of your presentation, please?
@savopejovic25
@savopejovic25 8 ай бұрын
This is not just SQL Server? Oracle has no support yet...
@gunnarliljas8459
@gunnarliljas8459 8 ай бұрын
Cool, but just mentioning "perf" so briefly kind of falsely gives the impression that this JSON support is usable in anything but extremely small databases. It isn't. The JSON_VALUE thing can be indexed, but the collections not so much. PostgreSQL kind of handles it. The contains optimization is great, but something that has been solved by other OR mappers years ago. Still, good to see.
@ericblankenburg
@ericblankenburg 8 ай бұрын
But you don't support Cosmos Db hierarchical partition keys. You always seem to be way behind the curve when it comes to Cosmos Db.
@rivercitron2000
@rivercitron2000 8 ай бұрын
What could go wrong
@codefoxtrot
@codefoxtrot 8 ай бұрын
Talk about flying too close to the sun... jeez, just bring a plague down on us all, why don't you?!
@ivanz6368
@ivanz6368 5 ай бұрын
what a useless video....
Database Sharding and Partitioning
23:53
Arpit Bhayani
Рет қаралды 74 М.
哈莉奎因以为小丑不爱她了#joker #cosplay #Harriet Quinn
00:22
佐助与鸣人
Рет қаралды 7 МЛН
Пранк пошел не по плану…🥲
00:59
Саша Квашеная
Рет қаралды 7 МЛН
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 207 МЛН
How to Create Custom CSS Style in Razor page  | MAUI | C#
3:38
CatchyBytes By Techy
Рет қаралды 338
What's New in C# 12 | .NET Conf 2023
35:28
dotnet
Рет қаралды 55 М.
Is Blazor Better than React?
14:25
Gavin Lon
Рет қаралды 45 М.
Common mistakes in EF Core - Jernej Kavka - NDC Oslo 2023
1:03:43
NDC Conferences
Рет қаралды 25 М.
Reverse proxying is easy with YARP | .NET Conf 2023
29:46
dotnet
Рет қаралды 10 М.
All About C# Source Generators | .NET Conf 2023
27:59
dotnet
Рет қаралды 24 М.
Microservices with Databases can be challenging...
20:52
Software Developer Diaries
Рет қаралды 22 М.
📱магазин техники в 2014 vs 2024
0:41
djetics
Рет қаралды 646 М.
Хакер взломал компьютер с USB кабеля. Кевин Митник.
0:58
Последний Оплот Безопасности
Рет қаралды 2,3 МЛН
iPhone 15 Pro в реальной жизни
24:07
HUDAKOV
Рет қаралды 495 М.
Vision Pro наконец-то доработали! Но не Apple!
0:40
ÉЖИ АКСЁНОВ
Рет қаралды 392 М.