.net EF Fluent Api是否可以设置最小长度?

.net EF Fluent Api是否可以设置最小长度?,.net,entity-framework,orm,ef-fluent-api,.net,Entity Framework,Orm,Ef Fluent Api,使用fluentapi似乎更具灵活性 因此,我选择了遵循的方法始终使用fluentapi来确定它在db中的特性,而不是使用注释来确定 但问题是,我找不到设置最小长度的方法。 是否有执行此操作的方法 我注意到,这种方式没有太多的话题讨论。Fluent API方式流行吗 希望我们选择正确的一面。这在EF目前是不可能的。如果确实需要设置最小长度,则可以使用属性: [MaxLength(10),MinLength(3)] public string MyProperty {get; set;} 正如您

使用fluentapi似乎更具灵活性

因此,我选择了遵循的方法始终使用fluentapi来确定它在db中的特性,而不是使用注释来确定

但问题是,我找不到设置最小长度的方法。 是否有执行此操作的方法

我注意到,这种方式没有太多的话题讨论。Fluent API方式流行吗


希望我们选择正确的一面。

这在EF目前是不可能的。如果确实需要设置最小长度,则可以使用属性:

[MaxLength(10),MinLength(3)]
public string MyProperty {get; set;}

正如您问题下的第一条注释所述,在数据库中使用最小长度签入可能并不常见(我本人从未见过),因此当您尝试输入长度小于3的值时,这将引发验证错误。

对于字符串属性,请使用StringLength

[StringLength(30, MinimumLength = 5)]
public string MyStringProperty { get; set; }

在must数据库中,如果不是全部的话,也不存在字符串列的最小长度约束,因此没有必要将其添加到Fluent mapping api。我明白了。我对数据库的列规范和POCO属性限制感到困惑。感谢~E-BatThanks的回答,但是我仍然对添加注释后数据库中的影响感到好奇。同时使用注释和Fluent API可以吗?注释是否很容易验证函数参数?是的,将注释和fluent api结合使用也不错。我尝试用注释尽可能多地验证属性,因为在查看模型时更清晰。我试图在fluent api中尽可能多地保持实体之间的关系。对不起,我读得最多,这个答案确实是正确的。fluent API不是用来验证的(尽管它也这样做),它是用来配置DB模式的,SQL server中不允许有“最小长度”(这基本上是EF6在EF7之前所支持的),所以它不存在。EF7将来会带来什么仍然是一个谜:-)我想知道Fluent API的方式谢谢你的回答。@Cyrus这个问题显然是在问使用Fluent API的解决方案。在发布答案之前,请仔细阅读问题