Ponowne pytanie o model w MVC

0

Witam, to znowu ja i znowu o MVC. Czy taki model jest poprawny?

public class Person
{
public string name { get; set; }
public string surname { get; set; }

public Person(string name, string surname)
{
this.name=name;
this.surname=surname;
}

void Save(Client client)
{
//sql
}

void Delete(Client client)
{
//sql
}

object[] ClientsWithCars() //Czy tu tak można? ( czy tak wypada?? )
{
//sql
}
} 

Głównie chodzi mi o metodę ClientsWithCars, która zwróci pola z kilku różnych tabel.

0

To nie tyle Model co Active Record: http://www.martinfowler.com/eaaCatalog/activeRecord.html Niby jedno drugiego nie wyklucza, ale...

Model w MVC, w sensie ten model na którym operują kontrolery, i którym typowane są widoki, to dla mnie klasa typu DTO - zawierająca jedynie właściwości i praktycznie żadnej logiki. Operacje bazodanowe lepiej upchnąć w innych klasach.

0

Im więcej pytam tym mniej wiem.... Operacje w osobnej klasie, masz na myśli np:

public class Operations
{
void Save(Client client);
object[] ClientsAndCarsById(int id);
}
0

Może mieć w składowych modelu metody operujące na strukturach danych. Przynajmniej tak mi się wydaję.

0
Ciekawski napisał(a):

Im więcej pytam tym mniej wiem.... Operacje w osobnej klasie, masz na myśli np:

public class Operations
{
void Save(Client client);
object[] ClientsAndCarsById(int id);
}

Czemu object[]? Tak się nie robi.

Mam na myśli oddzielenie modelu od operacji na nim wykonywanych... Operacje na modelu możesz np. wykonywać w kontrolerach. W najprostszym przypadku tam możesz wołać bezpośrednio warstwę dostępu do danych.

Active Record to wzorzec moim zdaniem niezbyt przyjazny, a po drugie stosuje się go do encji (czyli tych obiektów, które siedzą w bazie), a nie do modeli (czyli tych obiektów, które są wyświetlane użytkownikowi).

1 użytkowników online, w tym zalogowanych: 0, gości: 1