我有一个接口,由存储库使用)与该成员一起使用:
T FindById<T, TId>(TId id)
where T : class, IEntity<TId>
where TId : IEquatable<TId>;
这允许调用者指定实体类型 ( T
) 及其Id
字段的类型 ( TId
)。然后,此接口的实现者将找到类型的实体T
并使用id
参数根据它们的 id(在 上定义IEntity<TId>
)过滤它们。
目前我这样称呼它:
int id = 123;
var myApproval = PartsDC.FindById<Approval, int>(id);
理想情况下,我想这样做:
int id = 123;
var myApproval = PartsDC.FindById<Approval>(id);
我认为第二个通用参数应该能够通过它id
是一个事实来推断int
(所以这就是我的第二个通用参数)。
是否有可能得到这样的东西,我不必在我的班级中指定 id 字段的类型?