-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Milestone
Description
Ask a question
Hello, I'm working on an application that uses EF Core to map DDD-style aggregates to a SQL Server database. Several aggregates have private collections which are treated as collections of owned entities. When I query these aggregates, I make use of string-based include statements to eagerly load the collections
var myObject = await this.context.MyObjects
.Include("children")
.FirstOrDefaultAsync(p => p.Id == myObjectId && EF.Property<int>(p, "tenantId") == tenantId);
This works very well. However I'd like to take advantage of the new filtered-include functionality to apply an order-by clause to children to ensure that children loaded from the database are always retrieved in a specific order.
Is there a way to do this for a private collection, or do I need to make children
a public property and do something like:
var myObject = await this.context.MyObjects
.Include(x => x.Children.OrderBy(c => c.Date))
.FirstOrDefaultAsync(p => p.Id == myObjectId && EF.Property<int>(p, "tenantId") == tenantId);
Thanks!