получить и установить для класса в модели - MVC 2 asp.net - PullRequest
0 голосов
/ 09 июня 2010

Я хочу улучшить программу, чтобы у нее был правильный конструктор, но он также работал со средой моделей MVC.

В настоящее время у меня есть:

public void recordDocument(int order_id, string filename, string physical_path, string slug, int bytes)
        {
            ArchiveDocument doc = new ArchiveDocument(); 
            doc.order_id = order_id; 
            doc.filename = filename; 
            doc.physical_path = physical_path; 
            doc.slug = slug; 
            doc.bytes = bytes; 
            db.ArchiveDocuments.InsertOnSubmit(doc); 
        }

Это, очевидно, должен быть конструктори должно измениться на более простое:

  public void recordDocument(ArchiveDocument doc)
    {
        db.ArchiveDocuments.InsertOnSubmit(doc); 
    }

с get & set где-то еще - не уверен в синтаксисе - создать ли частичный класс?

так: создание в репозитории где-то-

 ArchiveDocument doc = 
        new ArchiveDocument(order_id, idTaggedFilename, physical_path, slug, bytes);

, а затем:

namespace ordering.Models
{

    public partial class ArchiveDocument 
    {
       int order_id, string filename, string physical_path, string slug, int bytes;


      public archiveDocument(int order_id, string filename, string physical_path, string slug, int bytes){
              this.order_id = order_id;
              etc

     }

}

Как мне изменить код?

1 Ответ

1 голос
/ 09 июня 2010

Я бы не использовал конструкторы для моделей

Мы используем модель без конструктора и автоматические свойства, затем мы используем инициализатор для назначения таким образом DataBinder может создать модель, и мы получаем максимальное повторное использование, когда мы назначаем только свойства, необходимые для конкретного представления

, например

public class AModel{

    public int Id{get;set;}

    public string Name{get;set;}

}

var aModel = new AModel{
    Id= dataSource.Id,
    Name = dataSource.Name
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...