none
EF + Patron Repositorio Generico y Implementacion de la Interface

    Question

  • Buenos dias / tardes

    Por muy sugerente que parezca el titulo, detras de todo esto, se encuentra (pineso yo) una duda que no logro comprender, y que seguramente se trate de alguna tonteria mia!!!.

    Cuestion.. El tema es que estoy desarrollando mi primera aplicacion en ASP.NET MVC. Como es poca cosa la curva de aprendizaje, para no aburrirme, he querido imploementar el patron repositorio para entidades genericas. Todo fabulos, y siguiendo algunas guias va saliendo el tema (http://weblogs.asp.net/shijuvarghese/archive/2011/01/06/developing-web-apps-using-asp-net-mvc-3-razor-and-ef-code-first-part-1.aspx)

    Por motivos personales, lo estoy creando en VB.NET

    La cuestion es la siguiente: cuando me lio con la siguiente clase

        Public Class EmpresaRepositorio
            Inherits RepositoryBase(Of Empresa)
            Implements IEmpresaRepositorio
     
     
            Public Sub New(databaseFactory As IDataBaseFactory)
                MyBase.New(databaseFactory)
            End Sub
            
            Public Sub Add1(entity As Model.EmpresaImplements Infrastructure.IRepository(Of Model.Empresa).Add
            End Sub
     
            Public Sub Delete1(where As System.Linq.Expressions.Expression(Of System.Func(Of Model.EmpresaBoolean))) Implements Infrastructure.IRepository(Of Model.Empresa).Delete
            End Sub
     
            Public Sub Delete1(entity As Model.EmpresaImplements Infrastructure.IRepository(Of Model.Empresa).Delete
            End Sub
     
            Public Function Get1(where As System.Linq.Expressions.Expression(Of System.Func(Of Model.EmpresaBoolean))) As Model.Empresa Implements Infrastructure.IRepository(Of Model.Empresa).Get
            End Function
     
        End Class
     
        Public Interface IEmpresaRepositorio
            Inherits IRepository(Of Empresa)
     
     
        End Interface

    Veo que la clase EmpresaRepositorio me implementa TODAS las funciones de la Interface IempresaRepositorio. Esto es bastante logico, pero dichas funciones, son heredadas tambien de RepositoryBase(Of Empresa) - Entiendo que por ese motivo me las "renombra" añadiendo un 1 al final de cada funcion-

    La cuestion es que me he guiado de una clase generada en c# y veo que no se implementan las funciones de la interface.

    1. public class CategoryRepository: RepositoryBase<Category>, ICategoryRepository
    2.     {
    3.     public CategoryRepository(IDatabaseFactory databaseFactory)
    4.         : base(databaseFactory)
    5.         {
    6.         }           
    7.     }
    8. public interface ICategoryRepository : IRepository<Category>
    9. {
    10. }

    Esto a que es debido?? Quiero decir, son caracteristicas que diferencial al C# del VB.NET???

    Por narices VS me obliga ha implementar todas las funciones, y la verdad, no soporto tener el codigo lleno de funciones vacias...

    Muchas gracias por su atencion...




    Tuesday, February 21, 2012 3:06 PM

All replies

  • Pues sí.

    Parece ser un tema de como VB.NET gestiona esto...

    Al compilar no te sale un warning parecido a "XXX from XXX is already implemented by the base class YYYY. Re-implementation of sub assumed."

    Si eliminas las funciones vacías que te genera VS no te funciona??

    Un saludo!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    Tuesday, February 21, 2012 4:27 PM
  • Hola Eduard...

    Que va.. No son warning... Son errores de la cabeza a los pies, con lo cual, el codigo queda bastante "guarrete!!!"

    Tambien me empape tu articulo http://geeks.ms/blogs/etomas/archive/2010/09/24/ef4-code-first-mvc2-y-unity-para-atarlo-todo-un-poco.aspx, para ver como funcionaba todo este triangulo (EF + Repository Patter + Unity), pero la verdad, me esta costando pillarlo.

    Creo que esta diferencia roza lo anti-estetico, pero bueno, si no se puede hacer nada...Tenia entendido que VS te deja "omitir" ciertos Warning, y me pregunte... y si esto tambien se puede deshabilitat??¿¿?¿

    Muchas gracias!!!

    Tuesday, February 21, 2012 4:53 PM