【发布时间】:2009-06-22 22:38:54
【问题描述】:
鉴于此:
var query = context.GetTable<T>();
其中“T”是传递给方法的通用实体,
我想做这样的事情:
if(typeof(TEntity) is IEntitySoftDeletable)
query = query.Cast<IEntitySoftDeletable>.Where(ent => !ent.IsDeleted);
}
这可能吗?
目前它告诉我不能这样投射。
我意识到我可以在类或方法级别强制参数“T”成为 IEntitySoftDeletable,但我试图避免这种情况,并通过同一方法提供更大的灵活性。
【问题讨论】:
-
T 是否实现了 IEntitySoftDeletable ?
-
并不总是...T 可以是任意数量的类型,其中一些实现了 IEntitySoftDeletable。我想要的是将谓词附加到可查询的 if T 是 IEntitySoftDeletable。我试图避免的是这种单独的行为需要重载。
标签: linq-to-sql