Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 脚手架还是其他框架?_C#_Asp.net_.net_Vb.net - Fatal编程技术网

C# 脚手架还是其他框架?

C# 脚手架还是其他框架?,c#,asp.net,.net,vb.net,C#,Asp.net,.net,Vb.net,我有点困惑。我在一个使用LINQtoSQL的项目中看到了一些代码 <MetadataType(GetType(Customer.CustomerMeta))> Partial Public Class Customer Friend Class CustomerMeta <Required(), StringLength(50)> Public Name As String <Required(), StringLength(50)> Pub

我有点困惑。我在一个使用LINQtoSQL的项目中看到了一些代码

<MetadataType(GetType(Customer.CustomerMeta))> Partial Public Class Customer
Friend Class CustomerMeta

    <Required(), StringLength(50)> Public Name As String
    <Required(), StringLength(50)> Public Address As String
    <Required(), StringLength(20)> Public EmailAddress As String
    <StringLength(20)> Public Country As String
End Class
部分公共类客户
朋友级客户
公共名称作为字符串
作为字符串的公共广播
作为字符串的公共电子邮件地址
作为字符串的公共国家
末级
我不知道为什么会这样创建,但它看起来和我以前使用的方法不同

在仔细阅读之后,它似乎是一种技术,可能是脚手架(),但在本演练进行到一半时,我意识到许多区域不存在(如global.asax文件)或不适用于我在中看到的上述代码的项目,因此我可能在这里走错了方向

有人知道上面使用的是什么技术/框架吗?如果有我可以参考的文章,我会尽快更新吗?如果这里需要书籍或培训课程,那么我很高兴有人能为我指出正确的方向


感谢

这些是数据验证注释(我不知道在您的案例中使用它们的确切“框架”,因为它们在.NET framework中公开,任何针对它编程的人都可以使用它们):基本上,您可以用这些属性装饰成员(),然后可以使用这些元数据进行一些验证,由某些数据架构规则检查器手动或自动执行

在这种情况下,属性
Name
为:-

  • 必填字段(即字段中必须有内容,且不能为空)
  • 长度必须为50个字符
等等等等


后一个约束可能使前一个变得多余,这取决于分析规则的内容。

Linq To SQL使用代码生成工具。我认为它是T4。指定了字符串的最大长度,而不是最小长度,使得
必需
不冗余。这与分析规则的人员无关。@DanielHilgarth:“指定数据字段中允许的字符的最小和最大长度。”即使如此,它也取决于规则检查器。在使用带有一个参数的构造函数时不是这样的:。它只指定了最大长度。我的意思实际上是“当不设置
MinimumLength
属性时”。OP的代码不会使
Required
属性冗余。你的这句话是不正确的,特别是在给定的上下文(LINQ到SQL)中。我不知道你为什么这么说。
MinimumLength
的默认值为0。那么,任何理智的规则引擎如何将其解释为不小于
MaximumLength
?这毫无意义。MinimumLength=0表示它可以为空。每一个不同的规则引擎都是假的。