Duda Model en ASP.NET MVC 3

tracker086

Buenas!
Hace un par de días que he estado mirándome un poco de ASP.NET MVC para aprenderlo un poquillo y ver que cosas puede ofrecerme. Por ahora he estado mirando los típicos tutoriales de Microsoft y demás con Entity Framework (con Code First).

El caso es que hay una cosa que no me cuadra. En la mayoría de frameworks MVC que he visto, dentro del modelo, van los métodos con las consultas sobre ese modelo en cuestión. El caso es que aquí no parece ser así, en los tutoriales que he visto, es en el mismo controlador donde plantan la consulta LINQ.

Entonces no se si es que lo quieren hacer demasiado facil y por eso es por lo que lo ponen asi, o hay algo que esta fallandome.

Os pongo un ejemplo rapido, seguramente haya cosas mal, pero lo voy a escribir al vuelo

PersonModel

class Person
{
    public string Nombre {get; set;}
    public string Apellido {get; set;}
}

//aqui el codigo que iría para el Code First de Entity Framework
class PersonDB : DBContext
{
    DBSet<Person> Personas {get; set;}
}

Y se supone que si yo en mi controlador quiero ver...una persona que se llame por un nombre seria algo asi

public ActionResult Nombre(string nombre)
{
    Person persona = //Aqui iria la query en LINQ para sacar la persona por ese nombre
    //Y el resto del codigo del controlador que no viene al caso.
}

Lo que quiero decir...es que realmente no se como debería ponerlo para quitar la logica de los modelos del controlador, como he visto que se hace en otros framework MVC. En plan tener El tipico modelo de personas, con las funciones necesarias. Como ver por nombre, los que el apellido empiece por "a"...o cosas así, sin tener que cargar el controlador con tantas queries.

Espero haberme explicado bien....gracias por las respuestas!

B

No tengo ni idea de como va la tecnología que utilizas y posiblemente esta respuesta sea una estupidez. Pero... ¿no puedes añadir al modelo esas funcionalidades? Es decir, o bien puedes poner en la clase Person los métodos que tu dices, o puedes crearte un "PersonManager" con los miticos findAll, findByXXX, etc.

1 respuesta
tracker086

#2 Gracias por contestar. Realmente las funciones básicas ya vienen con el Entity Framework sin tener que hacer nada...

Supongo que en la clase PersonDB podría meter las funciones. Aunque no se si sería lo mas correcto

1 respuesta
B

#3: Yo te comento según lo que hago yo, pero claro es una tecnología distinta. Yo en Java, con Hibernate, hago el modelo básico (utilidades CRUD y poco más por entidad) y luego me creo las clases fachada del modelo, con los métodos más complicados.

Usuarios habituales