zoukankan      html  css  js  c++  java
  • 12 EF Core 私有字段的映射

     1、Fluent API 配置实体对象的私有字段赋值,只有Get没有Set 属性的映射

    实体类

    public class Blog
    {
       private string _url;
       public int BlogId { get; set; }
       public string Url
       {
         get { return _url; }
       }
    }

    配置

    modelBuilder.Entity<Blog>().Property(b => b.Url)
    .HasField("_url")//设置EF Core 读取Url列值时,赋值给_url
    //可配置访问模式  PropertyAccessMode.Field:直接访问私有字段返回值_url; PropertyAccessMode.Property:通过Url属性访问值  PropertyAccessMode.FieldDuringConstruction:优先使用属性访问
    .UsePropertyAccessMode(PropertyAccessMode.Field);

    2、隐藏属性的配置

    模型

        public class Blog
        {
            
            private string _url;  //没有属性访问器
    
            public int BlogId { get; set; }
    
            public List<Post> Posts { get;  set; }
    
        }

    Fluent API 配置

    modelBuilder.Entity<Blog>().Property<string>("Url").HasField("_url").UsePropertyAccessMode(PropertyAccessMode.Field);

    访问方式

    var blogs = db.blogs.OrderBy(b => EF.Property<string>(b, "Url"));
  • 相关阅读:
    elasticsearch 基本操作
    ElasticSearch停止启动
    oracle误删数据
    多层级sql查询
    max_result_window
    测试ik分词效果
    TransportClient 新建index,mappings dynamic_templates。
    7.10考试
    C#生成TXT文件
    C#的进度条--progressBar
  • 原文地址:https://www.cnblogs.com/Adoni/p/12334336.html
Copyright © 2011-2022 走看看