2013-06-06 1 views
0

Я пытаюсь создать решение с разделенными классов, поэтому у меня есть:SQLite соединения - Инъекция

public class RepositorioPadrao<TEntidade> : IRepositorioPadrao<TEntidade> 
    where TEntidade : class 
{ 

    public readonly ISQLiteConnection _connection; 

    public RepositorioPadrao(ISQLiteConnectionFactory factory) 
    { 
     _connection = factory.Create("easybudget.sql"); 
     _connection.CreateTable<TEntidade>(); 
    } 

    public virtual void Inserir(TEntidade objeto) 
    { 
     _connection.Insert(objeto); 
    } 

Затем использовать это у меня есть:

public class RepositorioDeCategoria : RepositorioPadrao<Categoria>, IRepositorioDeCategoria 
{ 
    public List<Categoria> ObterTudo() 
    { 
     return _connection 
       .Table<Categoria>() 
       .OrderByDescending(x => x.Descricao) 
       .ToList(); 
    } 
} 

Проблема заключается в том, что EasyBudget.Core.Repositorio.RepositorioPadrao<EasyBudget.Core.Dominio.Categoria> не содержит конструктор, который принимает 0 аргументов.

ответ

0

Чтобы решить текущую проблему, можно добавить конструктор к RepositorioDeCategoria, который вызывает базовый класс:

public RepositorioDeCategoria(ISQLiteConnectionFactory factory) 
     : base(factory) 
{ 
} 

С другой стороны, если вы собираетесь иметь несколько Categoria, и вы хотели, чтобы поделиться то же _connection, то вы можете захотеть реорганизовать свои классы, чтобы они использовали некоторую форму агрегации вместо наследования.