与实体框架的松散耦合

时间:2014-10-28 16:19:56

标签: c# entity-framework entity loose-coupling

我正试图松散地耦合这些代码,但我不确定我应该怎么做。

我正在使用Entity Framework,而DbContext是实体对象TMeasure使用的继承类。当我运行此代码时,我收到此错误:

  

'System.Data.Entity.DbContext'不包含'TMeasures'的定义,也没有扩展方法'TMeasures'接受类型为'System.Data.Entity.DbContext'的第一个参数'(你丢失了吗?) using指令或程序集引用?)

有人可以帮我这个吗?

谢谢!

class MeasureRepository: IMeasureRepository
{
    private DbContext db;

    public MeasureRepository(DbContext db)
    {
        this.db = db;
    }

    public List<TMeasure> GetAll()
    {
        var results = (from i in db.TMeasures
                        orderby i.strMeasure
                        select i).ToList();
        return results;
    }
}

1 个答案:

答案 0 :(得分:2)

您应该创建自己的上下文:

//Internal class recommended
public class MeasuringContext : DbContext
{
     public DbSet<Measure> Measures { get; set; }
}

然后使用此上下文而不是通用的上下文:

class MeasureRepository : IMeasureRepository
{
    private MeasuringContext db;

    //...
}