有没有办法在 ASP.NET 的上下文中遍历相同类型的实体?

Posted

技术标签:

【中文标题】有没有办法在 ASP.NET 的上下文中遍历相同类型的实体?【英文标题】:Is there a way to iterate through entites of the same type in a context in ASP.NET? 【发布时间】:2021-09-24 04:47:35 【问题描述】:

我的模型中可能有几十个小数属性,我在 OnModelCreating 中设置精度如下:

modelBuilder.Entity<Models.MyModel>()
                    .Property(x => x.MyProp)
                    .HasPrecision(18, 2);

但是长度已经失控了,所以我想知道是否有办法遍历上下文中的每个小数并设置精度 (18,2)?

【问题讨论】:

根据您的版本,这可能是一个有趣的答案:***.com/a/22833767/10608418 这真的很漂亮,我不知道我怎么错过了,非常感谢! @努普 没问题,祝你的项目好运! 如果努普帮助了你,你应该像我一样给他一个支持。他发表了有用的评论,不是吗? @qqtf 相信我很乐意,可惜我还没有名气 【参考方案1】:

流利的验证。 用于构建强类型验证规则的流行 .NET 库。 看看这个,希望这能解决你的问题。

【讨论】:

OP 要求的与验证不同。使用HasPrecision 以便实体框架知道在它后面使用的任何数据库中为列提供什么数据类型。【参考方案2】:

EF 允许您从EntityTypeConfiguration 继承并使用它为每个实体进行自己的配置。然后将EntityTypeConfiguration-derived 类添加到流利集。

例如:书本配置类

public class BookConfig : EntityTypeConfiguration<Book>

   public BookConfig()
   
      Property(p => p.bookNo).HasPrecision(18, 2);
      Property(p => p.BookPrice).HasPrecision(18, 2);
   

现在把它引入fluent库

protected override void OnModelCreating(DbModelBuilder modelBuilder)

   base.OnModelCreating(modelBuilder);
   modelBuilder.Configurations.Add(new BookConfig());

【讨论】:

以上是关于有没有办法在 ASP.NET 的上下文中遍历相同类型的实体?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET 中跨多个 Web 应用程序维护相同的会话 ID

ASP.NET MVC 上下文对象使用单例

如何在 C# 类(.cs 文件)和 ASP.NET .aspx 文件中使用相同的 OracleMembershipProvider?

有没有办法让 Asp.net 零公共站点(Asp.net MVC)中的实时登录用户?

ASP.NET Core - 当前上下文中不存在名称“JsonRequestBehavior”

有没有办法在 ASP.net 中设置标签顺序? [复制]