이 주어진 :LinqToSQL - 런타임에 IQueryable 객체를 캐스팅 하시겠습니까?
"T"는 메서드에 전달하는 일반 엔티티입니다var query = context.GetTable<T>();
,
나는 이런 식으로 뭔가 할 싶습니다:
if(typeof(TEntity) is IEntitySoftDeletable)
query = query.Cast<IEntitySoftDeletable>.Where(ent => !ent.IsDeleted);
}
이것이 가능을?
현재이 방법을 사용할 수 없다고 말하고 있습니다.
매개 변수 "T"를 클래스 또는 메서드 수준에서 IEntitySoftDeletable로 설정할 수 있다는 것을 알고 있지만이를 피하고 같은 방법으로 더 많은 유연성을 제공하려고합니다.
T는 IEntitySoftDeletable을 구현합니까? – bytebender
항상 그렇지는 않습니다 ... T는 IEntitySoftDeletable을 구현하는 몇 가지 유형이 될 수 있습니다. 내가 원하는 것은 * T *가 IEntitySoftDeletable 인 쿼리 가능 *에 술어를 추가하는 것입니다. 내가 피하려고하는 것은이 분리 동작에 과부하가 필요하다는 것입니다. –