Open idchlife opened 4 years ago
yes exactly, its mentioned in ef6 docs here https://docs.microsoft.com/en-us/ef/ef6/saving/change-tracking/property-values#getting-and-setting-the-current-or-original-value-of-an-individual-property but same example is not working in efcore
As it states on this page: A generated property is a property whose value is generated (either by EF or the database) when the entity is added and/or updated.
But also there is no example how to generate value on the side of EF Core. Maybe via lambda/arrow function or ValueGenerator object or something.
EF Core available for different databases via variety of providers.
So every database has their own generation strategies and implementations.
What if we want to generate value explicitly on the side of EF Core? .ValueGeneratedOnAdd()/ValueGeneratedOnAddOrUpdate() could be helpful if there would be ability to generate value in EF Core, and not only in SQL.
Quick example, HasDefaultValueSql("CURRENT_TIMESTAMP") working nicely for Postgres, but HasComputedValueSql("CURRENT_TIMESTAMP") is not for Postgres versions < 12 (theoretically, did not try >= 12 version yet), because of syntax errors. Meaning that there is no way to easily generate something like UpdatedAt columns in Postgres using EF Core, without manually overriding SaveChanges or SaveChangesAsync, which makes the whole situation kinda messy.
I suspect documentation lacks the crucial examples how to generate value on the side of EF Core if one potentially to create and update entities only using ORM.
It may be stupid, but what if we would want to have value generator like "Fill column differently for each one of 24 hours of day" for insert/updates, without using database prepared code for such generation on insert/update?
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.