我想改进程序,因此它有一个合适的构造函数,但也适用于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);
}
获得&设置在其他地方 - 不确定语法 - 我是否创建了一个分部类?
所以:在somewhere存储库中创建 -
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
}
}
我该如何更改代码?
答案 0 :(得分:1)
我会避免在模型中使用构造函数
我们使用无构造函数的模型和自动属性,然后我们使用初始化程序进行分配 通过这种方式,DataBinder可以创建模型并获得最大程度的重用,我们只分配特定视图所需的属性
e.g。
public class AModel{
public int Id{get;set;}
public string Name{get;set;}
}
var aModel = new AModel{
Id= dataSource.Id,
Name = dataSource.Name
};