我試圖鬆散地耦合這段代碼,但我不知道該如何或者應該如何。與實體框架的鬆散耦合
我正在使用實體框架,而DbContext
是實體對象TMeasure
使用的繼承類。當我運行此代碼時,出現此錯誤:
'System.Data.Entity.DbContext' does not contain a definition for 'TMeasures' and no extension method 'TMeasures' accepting a first argument of type 'System.Data.Entity.DbContext' could be found (are you missing a using directive or an assembly reference?)
有人可以幫助我嗎?
謝謝!
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;
}
}
我不能用什麼方式,這可能被視爲看「鬆散耦合」,它似乎破碎了。你最終的目標是什麼?你想編寫一個可以與任何DbContext一起工作的repo,而不是從DbContext派生的特定類。如果是谷歌的「通用知識庫」,我知道我已經發布過去的例子。 – 2014-10-28 16:27:34
Mati(下圖)爲我解決了我的問題。它顯然已經壞了,但我說的是不必在類中實例化一個實體類。我寧願將實體對象傳遞給類本身。 – 2014-10-29 14:31:34