Tasks closes over session
Marten1007 Warning
Cause
Task (System.Threading.Tasks.Task.Task) closes over session (Marten.IDocumentSession).
Reason for rule
Document session is not threadsafe.
How to fix violations
Construct sessions per consuming site.
Examples
Violates
var issues = new Task<IEnumerable<Issue>>(() => {
return session.LoadMany<Issue>("Issue-1", "Issue-2");
});
Does not violate
var issues = new Task<IEnumerable<Issue>>(() => {
using (var session = store.OpenSession())
{
return session.LoadMany<Issue>("Issue-1", "Issue-2");
}
});