Skip to content

Marten extensions for ASP.NET Core, ASP.NET Core MVC

License

Notifications You must be signed in to change notification settings

jokokko/marten.aspnetcore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marten.AspNetCore, Marten.AspNetCore.Mvc Build status NuGet Version NuGet Version

ASP.NET Core & ASP.NET Core MVC extensions for Marten.

Packages Marten.AspNetCore, Marten.AspNetCore.Mvc | Platforms .NET Standard 2.0

Example Usage

// Bootstrap
public void ConfigureServices(IServiceCollection services)
{    
    services
        // Registers IDocumentStore for DI (scoped to Singleton as per Marten best practices)
        .UseMarten(c => c.Connection("cstring"))
        // Registers IDocumentSession, IQuerySession, IEventStore for DI (default scope Scoped)
        .UseSessions();

    services.AddMvc()
        // Automatically save IDocumentSession changes on request processing
        .WithMartenSessionsSaved(saveOnHttpMethods: new [] { "POST", "PATCH" });
        // Or for IDocumentSession.SaveChangesAsync
        // .WithMartenSessionsSavedAsync(saveOnHttpMethods: new [] { "POST", "PATCH" }			
}

Additional optional arguments are documented.

// Sample Controller
[Route("api/[controller]")]
[ApiController]
public class DummyDocumentSessionController : ControllerBase
{
    private readonly IDocumentSession session;

    public DummyDocumentSessionController(IDocumentSession session)
    {
        this.session = session;
    }

    [HttpGet]
    public ActionResult<IEnumerable<Dummy>> Get()
    {
        // Access to scoped session
        return session.Query<Dummy>().Where(x => x.Value != null).ToList();
    }

    [HttpPost]
    public void Post([FromBody] string value)
    {
        var o = new Dummy { Value = value };
        // Changes are automatically saved after the request has been processed
        session.Insert(o);			
    }
}

Note: This is a contributor project.

About

Marten extensions for ASP.NET Core, ASP.NET Core MVC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published