在我的项目中,ID列自动递增1,我需要为它创建一个自定义模式。
代替:
1
2
3
我需要像这样的Ad-1-(mm)-(yy)
mm:当前月份(由两位数字组成(,yy:当前年份(由两位数字组成(,
例如,如果我想在这个月创建记录,ID应该如下所示:
Ad-1-10-19
(第一条记录(
Ad-2-10-19
(第2条记录(
Ad-3-10-19
(第3条记录(……
你能告诉我做这件事的正确方法吗?
假设您仍将保留integer主键ID列。您可以添加一个void函数来设置该属性,并在控制器内部调用它;
// your model
public class Product{
[Key]
public int productId {get;set;}
public string code {get;set;}
private void setCode() {
this.code= "Ad-" + this.productId.ToString() + "-" + DateTime.Now.ToString("MM-yy");
}
}
// your controller
public class ProductController : Controller(){
public ActionResult CreateProduct(){
Product p = new Product();
product.setCode();
}
}
或者你可以把它放在类的构造函数中,这样每当你实例化一个对象时,它就会自动创建;
// your model
public class Product{
// constructor
public Product(){
this.setCode();
}
[Key]
public int productId {get;set;}
public string code {get;set;}
private void setCode() {
this.code= "Ad-" + this.productId.ToString() + "-" + DateTime.Now.ToString("MM-yy");
}
}