Birim İşi ile bir havuz modeli oluşturmak için here örneğini kullanıyorum. Bu yöntem denir Şu andaRepository Pattern Yalnızca İstenen Sütunları Geri Al
public class GenericRepository<TEntity> where TEntity : class
{
internal AdminDbContext context;
internal DbSet<TEntity> dbSet;
public GenericRepository(AdminDbContext context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}
public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<TEntity, TEntity> selector = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ','}, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}
, veritabanından tüm kayıtları yüklenirken ve sütun seçimi bellekte yapılır: kodunda
, genel Get yöntemi yoktur.
Benim sorum, burada veritabanı yönteminde yalnızca istenen sütunların seçilebilmesi için sütun adlarını bu yönteme dinamik olarak aktarmama izin veren Get yöntemini nasıl genişletebilirim?
denedim:
- virgül ile istenilen sütun ayrılmış değerler bir dize parametresi kabul etme ama varlığa onları map olamayacağını.
- Hata veren aynı filtre türünde bir parametre oluşturma.
kullanma '.Select()'. – CodeCaster