网上很多有介绍这个方法的,对于生成的model中的单个类.cs来说,我们自建的类要怎么建呢?
1
ProOrder.cs 这个类来说:
这个是Models文件夹下ModelValde文件夹下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.ComponentModel.DataAnnotations; 6 7 namespace JBLPro.Mvc.Models 8 { 9 [MetadataType(typeof(ProOrderMetaData))] 10 public partial class ProOrder 11 { 12 } 13 public partial class ProOrderMetaData 14 { 15 [Key] 16 [Display(Name = "主键ID")] 17 public int ProOrder_PID { get; set; } 18 [Display(Name = "创建时间")] 19 [Required(ErrorMessage = "必填项")] 20 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 21 public System.DateTime CreateDate { get; set; } 22 [Display(Name = "是否转入证2323123123明生效")] 23 public Nullable<int> TurnBuy { get; set; } 24 [Display(Name = "转入产品ID")] 25 public Nullable<int> FromProID { get; set; } 26 [Display(Name = "购买产品名称")] 27 public int Proid { get; set; } 28 29 [Display(Name = "开始时间")] 30 [Required(ErrorMessage = "必填项")] 31 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 32 public System.DateTime DateStart { get; set; } 33 [Display(Name = "截止时间")] 34 [Required(ErrorMessage = "必填项")] 35 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")] 36 public System.DateTime DateOver { get; set; } 37 38 [Display(Name = "产品份额")] 39 [Required(ErrorMessage = "必填项")] 40 public string ProShare { get; set; } 41 42 [Display(Name = "用户名")] 43 [Required(ErrorMessage = "必填项")] 44 public string Userid { get; set; } 45 46 [Display(Name = "归属")] 47 public string CustomerVested { get; set; } 48 49 [Display(Name = "固定收益率")] 50 [Required(ErrorMessage = "必填项")] 51 public string ProFixed { get; set; } 52 [Display(Name = "购买时净值")] 53 [Required(ErrorMessage = "必填项")] 54 public string ValueStart { get; set; } 55 56 } 57 }
下面是ef生成的,Models文件夹下的JBLProData.edmx中的:
1 //------------------------------------------------------------------------------ 2 // <auto-generated> 3 // 此代码是根据模板生成的。 4 // 5 // 手动更改此文件可能会导致应用程序中发生异常行为。 6 // 如果重新生成代码,则将覆盖对此文件的手动更改。 7 // </auto-generated> 8 //------------------------------------------------------------------------------ 9 10 namespace JBLPro.Mvc.Models 11 { 12 using System; 13 using System.Collections.Generic; 14 15 public partial class ProOrder 16 { 17 public int ProOrder_PID { get; set; } 18 public System.DateTime CreateDate { get; set; } 19 public Nullable<int> TurnBuy { get; set; } 20 public Nullable<int> FromProID { get; set; } 21 public int Proid { get; set; } 22 public System.DateTime DateStart { get; set; } 23 public System.DateTime DateOver { get; set; } 24 public string ProShare { get; set; } 25 public string Userid { get; set; } 26 public string CustomerVested { get; set; } 27 public string ProFixed { get; set; } 28 public string ValueStart { get; set; } 29 public string ValueEnd { get; set; } 30 public string CustomerProfitType { get; set; } 31 public Nullable<decimal> CustomerProfixed { get; set; } 32 public Nullable<decimal> CustomerProfloat { get; set; } 33 } 34 }
很多都是表述的不清楚,这里想说明的是我们自建的.cs要放在一个不能和JBLProData.edmx一个文件夹下,因为这样会重名,会提醒要不要覆盖掉
所以不能在Models中建同名类!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
放在其他文件夹可以同名,如果想要放在Models中,那就建一个不同名的.cs类
这个ProOrderVidate.cs类和上面Models/ModelValde/ProOrder.cs类中的内容是一样的。
这里没有讲怎样类中的东西,但是想说明这个类似继承的类只要保证命名空间一样,和下面MetadataType(指定要与数据模型类关联的元数据类)设置对了,
放在那里都是可以的(理论)
1 [MetadataType(typeof(ProOrderMetaData))] 2 public partial class ProOrder 3 { 4 } 5 public partial class ProOrderMetaData 6 { 7 ............................ 8 9 }