Saya menggunakan System.Linq.Dynamic.Core;
dan metode ekstensi berikut untuk mengakses DbSet secara dinamis berdasarkan nama dan menghasilkan kueri dari string.
Ini adalah metode ekstensi:
namespace Microsoft.EntityFrameworkCore
{
public static partial class CustomExtensions
{
public static IQueryable Query(this DbContext context, string entityName) =>
context.Query(context.Model.FindEntityType(entityName).ClrType);
public static IQueryable Query(this DbContext context, Type entityType) =>
(IQueryable)((IDbSetCache)context).GetOrAddSet(context.GetDependencies().SetSource, entityType);
}
}
Inilah cara saya mengakses DbSet:
IQueryable<T> dbSet = (IQueryable<T>)_db.Query(entityName);
Ini berfungsi dengan baik, saya dapat membuat kueri dan kemudian membuat daftar tetapi tidak ada entitas bersarang yang dimuat. Tampaknya IQueryable
tidak memiliki definisi untuk Include()
. Saya dapat melihat metode penyertaan jika saya mengakses konteks db secara langsung dengan cara normal tetapi tidak menggunakan metode dinamis ini.
Bagaimana cara memasukkan entitas bersarang menggunakan metode dinamis?