gpt4 book ai didi

c# - 在哪里放置数据注释标签?

转载 作者:行者123 更新时间:2023-11-30 21:17:43 25 4
gpt4 key购买 nike

我正在研究 pro asp.net mvc 2.0 框架,似乎他将他的数据注释标记放在也生成 linq to 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 类)文件,我会得到那个漂亮的设计器,会发生什么。

我应该把所有这些数据注释放在哪里?我会创建另一个包含所有这些内容的类吗?或者可能在 View 模型中?

最佳答案

您是否尝试过使用 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
{
}

我使用它通过部分类将属性附加到生成的代码的属性。效果非常好!

关于c# - 在哪里放置数据注释标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4651843/

25 4 0