我有多个数据上下文,它们需要相同的扩展方法。在这个类中,理想的方法是什么,使返回类型更通用?
public static class DBContextExtensions
{
public static TContext Attach<TEntity, TContext>(this TContext context, TEntity entity) where TEntity : class, IEntity
{
context.Entry(entity).State = entity.Id == 0 ? EntityState.Added : EntityState.Modified;
return context;
}
}
它似乎无法解析实体框架中的Entry
方法。我怎么能通过泛型公开方法?
答案 0 :(得分:2)
格雷格,
添加另一个通用约束:
public static TContext Attach<TEntity, TContext>(this TContext context, TEntity entity)
where TEntity : class, IEntity
where TContext : DbContext // <----- add this constraint