Usuario
EF + Patron Repositorio Generico y Implementacion de la Interface

Pregunta
-
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.Empresa) Implements Infrastructure.IRepository(Of Model.Empresa).Add End Sub Public Sub Delete1(where As System.Linq.Expressions.Expression(Of System.Func(Of Model.Empresa, Boolean))) Implements Infrastructure.IRepository(Of Model.Empresa).Delete End Sub Public Sub Delete1(entity As Model.Empresa) Implements Infrastructure.IRepository(Of Model.Empresa).Delete End Sub Public Function Get1(where As System.Linq.Expressions.Expression(Of System.Func(Of Model.Empresa, Boolean))) 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.
- public class CategoryRepository: RepositoryBase<Category>, ICategoryRepository
- {
- public CategoryRepository(IDatabaseFactory databaseFactory)
- : base(databaseFactory)
- {
- }
- }
- public interface ICategoryRepository : IRepository<Category>
- {
- }
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...
Todas las respuestas
-
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
-
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!!!