【发布时间】:2021-10-20 13:33:05
【问题描述】:
我有以下具有导航属性的实体。
public class Member
{
public Member()
{
Id = 0;
IsActive = true;
BillDetails = new List<BillDetail>();
}
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool IsActive { get; set; }
public int? OrgId { get; set; }
public IList<BillDetail> BillDetails { get; set; }
}
我有一个通用存储库:
public abstract class BaseRepository<TEntity, TId> : IRepository<TEntity, TId> where TEntity : class
{
private readonly IApplicationDbContext _db;
public BaseRepository(IApplicationDbContext db)
{
_db = db;
}
public virtual void Add(TEntity entity)
{
_db.Set<TEntity>().Add(entity);
_db.Entry(entity).State = EntityState.Added;
}
public virtual bool Update(TEntity entity)
{
_db.Set<TEntity>().Attach(entity);
_db.Entry(entity).State = EntityState.Modified;
return true;
}
public virtual bool Delete(TEntity entity)
{
_db.Set<TEntity>().Remove(entity);
_db.Entry(entity).State = EntityState.Deleted;
return true;
}
public virtual IQueryable<TEntity> Query()
{
return _db.Set<TEntity>().AsQueryable();
}
public virtual EntityEntry<TEntity> Entry(TEntity entity)
{
return _db.Entry(entity);
}
public void Attach(TEntity entity)
{
if (entity == null || _db.Entry(entity).State != EntityState.Detached)
return;
_db.Set<TEntity>().Attach(entity);
}
public void Detach(TEntity entity)
{
if (entity == null)
return;
_db.Entry(entity).State = EntityState.Detached;
}
public abstract Task<TEntity> FindAsync(TId id);
}
我想从我的服务类中获取以下类型的对象集合
public class MemberBill
{
public int MemberId {get; set;}
public decimal BillAmount {get; set;}
}
在我的服务类中,我有以下查询。现在如何从以下查询中获取对象列表 (MemberBill)?
var query = (_memberRepository.Query().Where(x => x.IsActive == true && x.OrgId == orgId)
.Include(x => x.BillDetails.Where(y => y.IsActive == true))).AsNoTracking().AsQueryable();
List<IList<BillDetail>> memberBills = query.Select(x => x.BillDetails).ToList();
memberBills.Select(x => new MemberBill
{
MemberId = x.
}).ToList();
请帮我找出解决办法。
【问题讨论】:
-
你能把你的 billdetail 课贴出来吗?
标签: c# entity-framework linq .net-core entity-framework-core