2014-10-28 2 views
2

Я пытаюсь свободно связывать этот код, но я не уверен, как и если я должен.Свободная связь с каркасом сущности

Я использую Entity Framework и DbContext является наследуемым классом, используемым объектом entity 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; 
    } 
} 
+0

Я не могу видеть, каким образом это можно было бы считать «слабо связан», это просто кажется сломанным. Какая у вас конечная цель? Вы хотите написать репо, которое работает с любым DbContext, а не с определенным классом, который происходит из DbContext. Если это так Google для «общего хранилища», я знаю, что я опубликовал пример в прошлом. –

+0

Мати (внизу) дал мне решение моей проблемы. Он был явно сломан, но я говорю о том, что вам не нужно создавать экземпляр класса Entity в классе. Я предпочел бы передать объект объекта самому классу. –

ответ

2

Вы должны создать свой собственный контекст:

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

И затем использовать этот контекст вместо родового один:

class MeasureRepository : IMeasureRepository 
{ 
    private MeasuringContext db; 

    //... 
} 
+0

Я предполагаю, что это позволит мне изменить контекст, который получает класс MeasureRepository, в случае необходимости в будущем? –

+0

Если вам нужен общий контекст, тогда этот вопрос может оказаться полезным: [Общий доступ к DbContext] (http://stackoverflow.com/questions/18151143/generic-access-to-dbcontext) –

Смежные вопросы