Comments (5)
Lets' first wait to merge the existing PR, and fix the EF6 project properly. Once we sort that out, then you can create an additional PR for these changes. Sounds OK?
For now, please use your own fully implemented Repository (you may just copy the implementations and update them as you wish). Anyhow, the RepositoryBase
is given just as an optional base class and just as a reference. We try to avoid leading or enforcing users to use it.
from specification.
The methods of base repositories now are marked as virtual in v5
.
from specification.
Hi @ngruson,
It's not about the method implementations only, but also the namespaces used within the "RepositoryBase".
The EntityFramework6
project should fully implement IRepositoryBase
interface, and not inherit from the existing one in EntityFrameworkCore
project. These two "addon/plugin" projects shouldn't reference each other. As for making the methods virtual
, sure, why not.
Also, we should have a new project for tests, something like EntityFramework6.IntegrationTests
. That way we can clearly test upon EF6, without referencing the EFCore at all.
This is my stand initially, @ardalis may have a different opinion.
PS. We have to refactor the test infrastructure here. It's in our backlog for some time. We should have the following:
- UnitTests project for the base package.
- IntegrationsTests project for each plugin package.
[EDIT]
Now that I read it again, I think I misunderstood you, sorry :). In the next release, we may refactor the methods as virtual.
from specification.
Hi @fiseni
Just to clarify further:
The EF6 base repository is not referencing the EF Core base repository and is implementing IRepositoryBase.
In my solution I have a repository which is inheriting from RepositoryBase (it's EF6 but it might as well be EF Core).
I have unit tests in my solution to test this repository. So this is not about the tests in Ardalis.Specification.
Shall I make a PR to virtualize these methods in both the EF Core and EF6 RepositoryBase classes?
from specification.
Implemented in version 5.0.3
from specification.
Related Issues (20)
- DbSet<T>.WithSpecification together with ISpecification<T, TDestination> throws SelectorNotFoundException HOT 4
- Conceptual question about the ORM specific implementations HOT 2
- Is it possible to use generic repository approach like this? HOT 1
- Specification - Include with Where clause HOT 1
- Strange behavior when compare DateTime HOT 3
- Apply Distinct in specification query HOT 1
- How to combine specifications? HOT 17
- Implementing additional provider for Azure Storage Tables HOT 1
- Which Design Pattern is behind Evaluators? HOT 1
- Cannot unit test specifications which sort by a Smart enum HOT 2
- Apply Entity and Aggregate Domain-Driven Design approach to Specification and Repository HOT 2
- ardalis.specification.entityframeworkcore is missing NuGet package README file
- Many-to-Many w/ INNER JOIN HOT 1
- System.MissingMethodException: Method not found
- Ardalis.Specification.EntityFramework6.csproj doesn't target net7.0 or net8.0 HOT 5
- Allow combination of Specification with different projections HOT 6
- InMemory SearchExtension bug HOT 3
- Can ignore properties in Select Specifications? HOT 4
- How to use ExecuteUpdateAsync? HOT 8
- Search in result dto object instead of db class HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from specification.