Jarvis.DAO
1.0.2.3
dotnet add package Jarvis.DAO --version 1.0.2.3
NuGet\Install-Package Jarvis.DAO -Version 1.0.2.3
<PackageReference Include="Jarvis.DAO" Version="1.0.2.3" />
<PackageVersion Include="Jarvis.DAO" Version="1.0.2.3" />
<PackageReference Include="Jarvis.DAO" />
paket add Jarvis.DAO --version 1.0.2.3
#r "nuget: Jarvis.DAO, 1.0.2.3"
#:package Jarvis.DAO@1.0.2.3
#addin nuget:?package=Jarvis.DAO&version=1.0.2.3
#tool nuget:?package=Jarvis.DAO&version=1.0.2.3
Jarvis.DAO
Camada DAO (Data Access Object) para Entity Framework Core com exclusão lógica automática, timestamps de alteração/exclusão e registro simplificado via injeção de dependência.
Instalação
dotnet add package Jarvis.DAO
Configuração
Registre o DAO no Program.cs informando a implementação do seu DbContext:
builder.Services.AddJarvisDAO<AppDbContext>();
O lifetime padrão é Scoped. Para alterar:
builder.Services.AddJarvisDAO<AppDbContext>(ServiceLifetime.Transient);
Uso
Injete JarvisIDAOContext no construtor do seu serviço ou controller:
public class ProdutoService(JarvisIDAOContext dao)
{
public async Task<Produto> Buscar(int id)
{
return await dao.Find<Produto>(id);
}
}
Consultas
Find
Busca por chave primária:
var produto = await dao.Find<Produto>(id);
List (com filtro de exclusão lógica)
Retorna apenas registros ativos. Se a entidade possuir a propriedade Ativo, filtra automaticamente por Ativo == true. Caso contrário, retorna todos.
var produtos = dao.List<Produto>();
All (sem filtro)
Retorna todos os registros, incluindo inativos:
var todos = dao.All<Produto>();
Inserção
var response = await dao.Add(produto);
var response = await dao.AddRange(listaProdutos);
Atualização
produto.Nome = "Novo Nome";
var response = await dao.Update(produto);
var response = await dao.UpdateRange(listaProdutos);
Remoção (Exclusão Lógica)
O método Remove define Ativo = false automaticamente. Não remove fisicamente o registro.
var response = await dao.Remove(produto);
var response = await dao.RemoveRange(listaProdutos);
Remoção em coleções
Para marcar itens de uma coleção como inativos sem salvar:
produto.Itens.Remove();
await dao.SaveAsync();
Timestamps Automáticos
Em operações de escrita (Add, Update, Remove), o DAO atualiza automaticamente:
- DataAlteracao →
DateTime.UtcNowem toda entidade modificada - DataExclusao →
DateTime.UtcNowquandoAtivoé definido comofalse
Basta que a entidade possua essas propriedades.
Acesso ao DbContext
Para acessar o DbContext original:
var db = dao.DatabaseContext<AppDbContext>();
Com interface de serviço:
var db = dao.DatabaseContext<IAppDbContext, AppDbContext>();
DbUpdateResponse
Todas as operações de escrita retornam DbUpdateResponse:
var response = await dao.Add(produto);
if (response.IsSuccess)
{
// sucesso
}
if (response.IsError)
{
// response.Exception contém o erro
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Jarvis.EntityFrameworkCore (>= 3.0.1.2)
-
net8.0
- Jarvis.EntityFrameworkCore (>= 3.0.1.2)
-
net9.0
- Jarvis.EntityFrameworkCore (>= 3.0.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.2.3 | 120 | 2/1/2026 |
| 1.0.2.2 | 117 | 1/28/2026 |
| 1.0.2.1 | 115 | 1/23/2026 |
| 1.0.2 | 304 | 11/14/2025 |
| 1.0.1.9 | 308 | 11/13/2025 |
| 1.0.1.8 | 231 | 6/17/2025 |
| 1.0.1.7 | 311 | 4/18/2025 |
| 1.0.1.6 | 186 | 2/13/2025 |
| 1.0.1.5 | 184 | 11/15/2024 |
| 1.0.1.4 | 161 | 11/13/2024 |
| 1.0.1.3 | 187 | 9/25/2024 |
| 1.0.1.2 | 232 | 9/18/2024 |
| 1.0.1.1 | 205 | 9/18/2024 |
| 1.0.1 | 218 | 8/23/2024 |
| 1.0.0.9 | 201 | 8/21/2024 |
| 1.0.0.8 | 211 | 8/13/2024 |
| 1.0.0.7 | 176 | 8/2/2024 |
| 1.0.0.6 | 186 | 6/11/2024 |
| 1.0.0.5 | 212 | 4/29/2024 |
| 1.0.0.4 | 227 | 3/24/2024 |