需要扩展方法的多个DataContext

时间:2016-01-15 17:29:51

标签: c#

我有多个数据上下文,它们需要相同的扩展方法。在这个类中,理想的方法是什么,使返回类型更通用?

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方法。我怎么能通过泛型公开方法?

1 个答案:

答案 0 :(得分:2)

格雷格,

添加另一个通用约束:

public static TContext Attach<TEntity, TContext>(this TContext context, TEntity entity) 
    where TEntity : class, IEntity 
    where TContext : DbContext      //  <----- add this constraint