我正在研究在我的应用程序的数据层上实现一个数据验证表单。我希望在我的数据模型中接受特定的字符串输入,但我很难知道如何最好地实现这一点。
我目前正在研究 Fluent API(目前正在测试 EF Core 风格)是否会促进此功能,或者我是否需要考虑将数据注释引入我的数据层模型以确保可以在所有对象关系建模服务上实现验证。
从在线阅读来看,Fluent API 是最佳的行动方案,因为它从数据层移除工作负载,并让数据访问层控制并指定有关如何建模数据的特定规则。
不利的一面是,我需要为其他 ORM(即:NPoco)重新实现它以满足该平台的规则。
关于这个问题的更多信息
我有几个具有外国文化名称和字符串的类,它们可以通过使用 ISO-639 和 ISO-3166 组合的语言文化字符串来识别。(zh-CN, zh-CN)
这由数据模型中的字符串表示。
public abstract class Alias
{
public string Culture { get; set; }
}
在 EF Core 下,我使用 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 Core 能够下拉一组 CultureInfo,它使用我想要实现的本地化字符串系统,但我不打算让数据模型检查这一点,而是让数据访问层验证数据。
如何确保我的预期逻辑可以在系统中实现?我是否需要更改为数据注释以确保此逻辑?