ardalis / ardalis/Specification
Add more materializing extension methods.
- Dominant language
- C#
- Stars
- 2.3k
- Forks
- 262
- PR merge metrics
- No merged PRs in 30d
Description
We expose the `WithSpecification` extension which applies the specification to any `IQueryable` source, [refer to the docs for more details](https://specification.ardalis.com/usage/use-specification-dbcontext.html).
We might go one step further and add some convenience extension methods covering some common use cases, e.g. `FirstOrDefaultAsync`, `SingleOrDefaultAsync`, etc. We already have such an extension `ToListAsync`, which is actually necessary considering the `PostProcessingAction`. But, we can expand to that and cover more methods.
### Example
Current usage:
```csharp
var customer = await dbContext.Customers
.WithSpecification(spec)
.FirstOrDefaultAsync(cancellationToken);
```
Proposed:
```csharp
var customer = await dbContext.Customers
.FirstOrDefaultAsync(spec, cancellationToken);
```
Contributor guide
Assessment
This issue has not been assessed yet.