mirror of
https://github.com/zoriya/EntityFrameworkCore.Projectables.git
synced 2026-05-12 15:29:04 +00:00
Update README.md
This commit is contained in:
@@ -101,7 +101,7 @@ There is currently no support for overloaded methods. Each method name needs to
|
||||
No; The runtime component injects itself within the EFCore query compilation pipeline and thus has no impact on the database provider used. Of course you're still limited to whatever your database provider can do.
|
||||
|
||||
#### Are there performance implications that I should be aware of?
|
||||
Yes and no; using EntityFrameworkCore.Projectables does not add any measerable overhead on top of normal use of EFCore (Expect a proper benchmark soon...) however it does make it easier to write more complex queries. As such: Always consider the generated SQL and ensure that it's performance implications are acceptable.
|
||||
There are 2 compatibility modes: Limited and Full. Most of the time, limited compatibility mode is sufficient however if you are running into issues with failed query compilation, then you may want to try Full compatibility mode. With Full compatibility mode, Each Query will first be expandend (Any calls to Projectable properties and methods will be replaced by their respsective Expresions) before being handed off to EFCore. (This is similar to how LinqKit/LinqExpander/Expressionify works). Because of this additional step, there is a small performance impact. Limited compatibility mode is smart about things and only expands the Query after it has been accepted by EF. The expanded query will then be stored in the Query Cache. With Limited compatibility you will likely see increased performance over EFCore without projectables. I have a planned post coming up talking about why that is but for now you can see it for yourself by running the included Benchmark.
|
||||
|
||||
#### Can I call additional properties and methods from my Projectable properties and methods?
|
||||
Yes you can! Any projectable property/method can call into other properties and methods as long as those properties/methods are native to EFCore or as long as they are marked with a `Projectable` attribute.
|
||||
|
||||
Reference in New Issue
Block a user