我正在通过pro asp.net mvc 2.0框架,似乎他将他的数据注释标签放在也生成linq到sql的类上。
[Table(Name = "Products")]
public class Product
{
[HiddenInput(DisplayValue = false)]
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int ProductID { get; set; }
[Required(ErrorMessage = "Please enter a product name")]
[Column] public string Name { get; set; }
[Required(ErrorMessage = "Please enter a description")]
[DataType(DataType.MultilineText)]
[Column] public string Description { get; set; }
[Required]
[Range(0.01, double.MaxValue, ErrorMessage = "Please enter a positive price")]
[Column] public decimal Price { get; set; }
[Required(ErrorMessage = "Please specify a category")]
[Column] public string Category { get; set; }
[Column]
public byte[] ImageData { get; set; }
[ScaffoldColumn(false)] [Column]
public string ImageMimeType { get; set; }
但是我想知道如果我不以这种方式开发我的数据库会发生什么。如果我只是在我的解决方案中添加一个linqtosql.dbml(linq to sql class)文件,我会得到那个好设计师会发生什么。
我将把所有这些数据注释放在哪里,我会在另一个类中创建所有这些内容?或者也许在视图模型中?
答案 0 :(得分:4)
您是否尝试过使用MetadataType属性?
public class IProductMetadata
{
[HiddenInput(DisplayValue = false)]
int ProductID;
[Required(ErrorMessage = "Please enter a product name")]
string Name;
[Required(ErrorMessage = "Please enter a description")]
string Description;
// etc
}
[MetadataType(typeof(IProductMetadata))]
public partial class Product
{
}
我使用它通过partial类将属性附加到生成代码的属性上。它的效果非常好!
答案 1 :(得分:0)
我在视图模型上执行此操作,并使用AutoMapper在数据对象和视图模型之间进行映射。