我正在研究在我的应用程序的数据层实现一个表单--数据验证。我希望在我的数据模型中接受一个特定的字符串输入,但我很难知道如何最好地实现这一点。
我目前正在研究Fluent API (目前正在测试EF核心风格)是否会促进这一功能,或者我是否需要考虑将数据注释引入数据层模型,以确保验证可以在所有对象关系建模服务上实现。
从在线阅读来看,Fluent API是最好的操作过程,因为它从数据层移除工作负载,让数据访问层控制数据访问层,并指定数据建模的具体规则。
缺点是,我需要为其他ORM(即: NPoco)重新实现这一点,以满足这个平台的规则。
--关于问题的更多内容
我有几个类将具有外来的有文化的名称和字符串,它们可以通过使用ISO-639和ISO-3166组合的语言文化字符串来识别。(en-GB,zh-CN)
这是由数据模型中的字符串表示的。
public abstract class Alias
{
public string Culture { get; set; }
}在EF下,我使用OnModelCreating函数设置表。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var authorAlias = modelBuilder.Entity<AuthorAlias>();
authorAlias.Property("Given").IsRequired().IsUnicode();
authorAlias.Property("Family").IsRequired().IsUnicode();
authorAlias.Property("Middle").IsUnicode();
base.OnModelCreating(modelBuilder);
}我知道.NET核心有能力提取一个使用我想要实现的本地化字符串系统的CultureInfo数组,但是我不打算让数据模型来检查这一点,而是让数据访问层验证数据。
如何确保我的预期逻辑能够实现到系统中?我是否需要更改数据注释以确保这一逻辑?
发布于 2021-01-24 17:15:51
这可能是一个迟来的答案,但您可以使用'Fluent验证‘-一个流行的.NET库来构建强类型的验证规则。
有关如何将其用于ASP.NET核心的更多信息可以在这里找到- https://docs.fluentvalidation.net/en/latest/aspnet.html。
https://stackoverflow.com/questions/49627834
复制相似问题