Je veux améliorer le programme de sorte qu'il dispose d'un constructeur approprié, mais fonctionne également avec l'environnement des modèles de MVC.obtenir et définir pour la classe dans le modèle - MVC 2 asp.net
J'ai actuellement:
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);
}
Cela devrait évidemment être un constructeur et devrait changer au plus maigre:
public void recordDocument(ArchiveDocument doc)
{
db.ArchiveDocuments.InsertOnSubmit(doc);
}
avec se & mettre quelque part ailleurs - pas sûr de la syntaxe - do Je crée une classe partielle?
donc: créer dans le dépôt de quelque part -
ArchiveDocument doc =
new ArchiveDocument(order_id, idTaggedFilename, physical_path, slug, bytes);
puis:
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
}
}
Comment dois-je modifier le code?
Puis-je vous demander pourquoi vous n'aimez pas utiliser les constructeurs dans les modèles? Je les utilise parfois lorsque l'intialisation des modèles est complexe et doit être réutilisée et cela fonctionne bien pour moi. –
nous utilisons des modèles pour transporter des données à la vue, toute la complexité est faite dans le contrôleur - donc nous n'en avons pas besoin. Il permet également à vos modèles d'être créés par ModelBinder, dans le cas d'un modèle en tant que paramètre dans une action de contrôleur, modelbinder ne peut le faire que s'il existe un constructeur public sans paramètre disponible. Nous utilisons des constructeurs ailleurs pour définir un contrat de création d'objet - mais pas pour les modèles –