현재는,이 같은 일반 저장소 있습니다일반 리포지토리에 Expression <Func <TEntity, bool >>을 적용 하시겠습니까?
public virtual IQueryFluent<TEntity> Query(Expression<Func<TEntity, bool>> query)
{
return new QueryFluent<TEntity>(this, query);
}
을 그리고 다음과 같이 구현 : 나는 일반적인 식을 구축 할 수 있도록, 역할 ID는, 모든 엔티티에 나타납니다
var obj = _repository.Query(x => x.RoleID == ID).Select().FirstOrDefault();
때문에
//Check and get RoleID if exist this column
PropertyInfo info = typeof(TEntity).GetProperty("RoleID");
if (info != null)
Expression<Func<TEntity, bool>> filter = (p => p.RoleID ??? or p.info ??? == 5);
어떻게 Generate Repository의 TEntity에서 알 수없는 열로 필터를 만들 수 있습니까? 아니면 필터에 where 절을 사용할 수 있습니까?
var obj = _repository.Query().Select().FirstOrDefault();
알려 주시기 바랍니다 :
내 목적은 그냥 그런 간단한 구조로 데이터를 쿼리 할 필요가 있다는 것입니다.
감사합니다. 사용 IRoleIdentifiedEntity
와 다른 저장소 개체에 대한
class GenericRepository<T> where T : IEntity
{
public IEnumerable<T> Query(Expression<Func<T, bool>> predicate)
{
throw new NotImplementedException();
}
}
: 사용, 모든 엔티티에 대한
interface IEntity { }
interface IRoleIdentifiedEntity : IEntity
{
int RoleID { get; }
}
일반 저장소 :
'IHasRole {int RoleID {get; set;}}와 같은 인터페이스를 구현하는 것이 가장 좋습니다. 모든 엔티티에서 사용하고이를 사용하십시오. 도움을 주신 Evk에게 – Evk
감사합니다. –