dotnet / efcore

EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations.
https://docs.microsoft.com/ef/
MIT License
13.67k stars 3.16k forks source link

Ideas for .NET Data Community Standup guests, products, demos, etc. #22700

Open ajcvickers opened 4 years ago

ajcvickers commented 4 years ago

Let us know which projects, people, demos, or other ideas you have for the show! This is the community standup, so we want to feature you, your ideas, and your projects! Comment on this issue and we'll update the list here with suggestions.

Guest/theme suggestions

Demos you would like to see

ajcvickers commented 4 years ago

Original threads from discussion on guests:

@JeremyLikness There is another thread for specific demos see this. This thread is about highlighting community. Let us know what project, people, or other ideas you have for the show. It is the community standup so we want to feature you, your ideas, and your projects.

Thank you!

ajcvickers commented 4 years ago

Original threads from discussion on demos:

@ajcvickers

Starting a discussion on what kinds of things people would like to see demoed in the EF Community Standup. Please try to be specific about what you want to see.

@ErikEJ - Many to many demo (when available) @ralmsdeveloper - TPT - (Progress); ToQueryString - (Demo); Index Fill Factor - (Demo); Partition Keys (Cosmos) - (Demo) @ilmax - How to configure single query VS multi query (when available) to load related entities #18022 @JeepNL - First of all: thank you for creating the EF Community Standup I really enjoy watching it. I'm using gRPC protobuf files with EF (Core) 5 code first for generating classes & SQLite (relational) tables (for my Blazor WASM project) and it's amazing imo. I'm just starting with it and would love to see some experts talking about the possibilities and best practices. Pretty soon after I started with it I needed to learn more about EF Value Conversion (for enums and timestamp) so that would be a great combo.

JonPSmith commented 3 years ago

Hi @ajcvickers,

I wondered if you would like me to come on a community standup and talk about some of the ways to performance tuning EF Core? I have an demo ASP.NET Core application (open-source) which implements a book selling site. I start with 700 books, then goes to 100,000 books, and then to 1/2 million books. I can show what I did at each stage, with the performance figures to see the differences.

What do you think?

PS. Just watched the Entity Framework Community Standup - EF Core 6.0 Survey Results. Really great info!

ajcvickers commented 3 years ago

@JonPSmith Sounds like a good idea. @JeremyLikness @roji

roji commented 3 years ago

Sure thing!

koenbeuk commented 3 years ago

@ajcvickers,

I would also be happy to come on the community standup to talk about EFCore.Triggered if you have me. It essentially brings database triggers down a notch to the level of EF (All made possible by the awesome ChangeTracker). I have a simple demo application that I can showcase with various uses of triggers to enforce various business rules. I can furthermore talk about implementation details and how EF triggers vary from domain events and database triggers.

ajcvickers commented 3 years ago

@koenbeuk Sounds interesting; @JeremyLikness @roji

JeremyLikness commented 3 years ago

@koenbeuk are you on Twitter? If so, DM me and I'll share my email so we can connect and schedule it.

DickBaker commented 3 years ago

@JonPSmith @ajcvickers @roji I raised Issue #2991 and a PR but this has now been junked by EF Team https://github.com/dotnet/EntityFramework.Docs/pull/2992#issuecomment-766878278 the code enacted many [real-world experience] ways to use EF (and even ADO) in good/bad/ugly ways and demoed Benchmark.net results to compare, soI would like ppl to dust off and revisit. I tried to see what Jon had done but the MEAP didn't expose it as still a WIP. Anyway, hope helps progress to perf nirvana. Best wishes for more StandUps incl perf in future to fend off Dappr competition

Giorgi commented 3 years ago

If there is interest I would be happy to talk about LINQPad.QueryPlanVisualizer It is a custom visualizer for LINQPad that shows query plan directly in LINQPad. It supports LINQ-to-SQL, Entity Framework Core and can show query plan for SQL Server and PostgreSQL. For SQL Server it can extract missing indexes from the plan xml.

bricelam commented 3 years ago

I'm still waiting for a show about SQLite-net with @praeclarum...

Giorgi commented 3 years ago

As the EF team is interested in exploring ideas around GraphQL, I think it would be interesting to invite authors of different GraphQL libraries such as GraphQL.EntityFramework, GraphQlClientGenerator, hotchocolate and my own GraphQLinq :blush:

bricelam commented 3 years ago

@simon-reynolds could probably teach us all a thing or two about using EF in F#.

koenbeuk commented 3 years ago

I would love to join the standup to talk about EFCore Projectables. It fits in with a bunch of libraries the likes of LinqKit, Expressionify and as hinted to me by @Giorgi DelegateDecompiler. All thrive for something similar which is to bridge the gap between expressing intend in C# and having that translated to an actual database query.

I can talk about the current limitations in EF and how these different libraries try to tackle these limitations. (As an example, with raw EF, we can't have a computed property on a model be directly translated to SQL or the likes as EF has no insights into its implementation). I can furthermore talk about how EF Core Projectables uniquely plugs in into the EF Core infrastructure to not only translate queries including computed properties and methods- but even increase EF Core's performance internally by plugging in at the right point in the pipeline.

JonPSmith commented 2 years ago

Hi,

I'm just updating my EfCore.TestSupport library which provides useful helpers for xUnit-type testing, and I don't think you have had a EF Core Community standup on testing. I wondered if you would like a talk from me called "Testing application that use EF Core". I haven't worked out exactly what I would say but here are some suggestions form me, but you have a LOT more tests than I have :smile: !

What you think?

roji commented 2 years ago

@JonPSmith I just happen to be in the middle of doing some substantial work on our testing docs, so this is very much on my mind! I definitely agree we should do a session on this topic...

AliCharper commented 2 years ago

I am not sure if here is the right place to share ideas about EF 7 or not, but this is what I am thinking about.

It would fantastic if we can have something like a TAG for the Commands that we run against or DB by EF and then be able to commit or roll back whatever has the same TAG.

By this, we can change the DB from a different place and not with the same Command, but we would have something like a Transaction at the end.

roji commented 2 years ago

@AliCharper this is a thread about ideas for the .NET Data community standup, not for general feature ideas. You can open a new issue on this repo with a detailed proposal.

vslee commented 2 years ago

Maybe a discussion about the dev cycle. This is not enough to fill an entire episode, so could probably be squeezed into the short "State of the Unicorn" at the beginning of an episode. Or wait until the EF 8 Plan video next year and be a part of that.

DaveSenn commented 2 years ago

How about talking about this https://github.com/dotnet/datalab/issues/6 ...if this is still a thing and not cancelled.

roji commented 2 years ago

@DaveSenn it's definitely still a thing and not cancelled, but it might take a bit more time before there's something out there for us to talk about...

Giorgi commented 2 years ago

What about a talk about https://github.com/koenbeuk/EntityFrameworkCore.Projectables that was proposed in one of the comments above?

Martinn2 commented 1 year ago

I would like to hear about more maybe basic DB stuff I had hard time searching on google.

Tips: Transactions + lock + deadlocks

Indexing

roji commented 1 year ago

@Martinn2 thanks for these suggestions... Yeah, standups focusing on general database topics could be useful, I agree.

Very quick responses to your questions:

  1. When you call SaveChanges, EF internally always sorts its modification statements in a deterministic order, precisely in order to avoid deadlocks between concurrent updates (and if you're doing SQL updates yourself with Dapper you have to do this yourself as well). The order of the EF change-tracking calls in your code (Add, Remove...) is completely irrelevant to the ordering of the SQL statements that EF actually sends.
  2. Indexing is indeed tricky, and scenarios where users can choose to filter by "everything/anything" are hard to get right. A multi-column index isn't necessarily useful, since a composite index on columns A,B cannot be used if the user only filters on B. Such an index can be used when filtering on A, or on A and B only.
ajcvickers commented 1 year ago

+1 for indexes. I ran into this earlier in the week and ended up creating an index that made my overall performance (when also considering updates) worse. I'm also not sure when to use a multi-column index, or when the direction of the index matters. I also still find it fascinating that indexes on discriminators are not something we create by default, but indexes on FKs are. Lots for me to learn here!

Oh, and how I create an index and then write a query that misses it!

ChaosEngine commented 1 year ago

Ideas:

onlypritam commented 1 year ago

Too many customers complain about Ef taking too much memory. Can we have a segment on what to expect when we load a lot of data and how to fine tune the memory usage in those cases, best approaches, debugging tips etc.

ErikEJ commented 1 year ago

EF Core Power Tools CLI ? 😄

fjallemark commented 1 year ago

Minimum entity mapping in DbContext

When you don't use the EF Core migrations features, what is the minimum entity mapping needed in DbContext when built-in default mappings are used? The background is when using Visual Studio's Database project for SQL-Server, you can handcraft the database in detail AND you get a very good database migration feature. The documentation is not very clear on this topic, so some clarification, maybe demonstrating an example in a stand-up session?

ErikEJ commented 1 year ago

If you reverse engineer from a .dacpac only needed configuration is added, and conventions respected.

Saibamen commented 4 months ago

@ajcvickers: Where I can find 2024 edition of dev news like here: https://github.com/dotnet/efcore/issues/29989? 2024 is not linked in this issue

ajcvickers commented 4 months ago

@Saibamen I don't do these anymore. Ultimately, I don't think there was enough interest to be worth spending the time rather than doing something else on EF with that time.

Saibamen commented 4 months ago

OK, thank you