5.EF Core 数据库映射模型隐藏属性配置

Posted adoni

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.EF Core 数据库映射模型隐藏属性配置相关的知识,希望对你有一定的参考价值。

   一、隐藏属性是指:在实体类中未定义,但在数据库中有字段定义,隐藏属性不支持通过数据注解的方式配置

例子:数据库表中添加LastUpdated,数据库模型中无LastUpdated字段

1.重写OnModelCreating添加配置

     protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
        modelBuilder.Entity<Blog>().Property<DateTime>("LastUpdated");
        base.OnModelCreating(modelBuilder);  
     }

2.隐藏属性数据的添加

            Blog blog = new Blog { Url = "XXXX" };
            _context.Entry(blog).State = EntityState.Added;
            _context.Entry(blog).Property("LastUpdated").CurrentValue = DateTime.Now.AddDays(1);
            _context.SaveChanges();

3.隐藏属性查询条件、排序

            var blogs = _context.Blogs.Where(b => EF.Property<DateTime>(b, "LastUpdated") > DateTime.Now);
            var blogs2 = _context.Blogs .OrderBy(b => EF.Property<DateTime>(b, "LastUpdated"));

4.隐藏属性的修改

            Blog blog = _context.Blogs.Find(1);
            _context.Entry(blog).Property("LastUpdated").CurrentValue = DateTime.Now;
            blog.Url = "xxxxx";
            _context.SaveChanges();

 

 

以上是关于5.EF Core 数据库映射模型隐藏属性配置的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 中的模型绑定将下划线映射到标题大小写属性名称

为 ASP.NET Core 5.0 - EF Core 5.0 Web App 配置 PostgreSQL 连接字符串以在 MS 或 Linux 云上运行?

EF Core 5 - 如何将 EF.Functions.Like 与映射到 JSON 字符串的自定义属性一起使用?

C# 数据操作系列 - 5. EF Core 入门

ASP.NET Core实现对象自动映射-AgileMapper

ASP.NET Core实现对象自动映射-AgileMapper