实体框架核心中的元数据工作区在哪里



我正在尝试使用EntityFramework Core中Fluent API设置的反射来读取自定义属性。我做了一些研究,发现元数据工作区可以提供帮助,如以下链接所示:链接 1、链接 2。所有这些解决方案都在EntityFramework上。

如何将元数据工作区与 EntityFramework Core 一起使用?

或者,Asp.Net Core 2.1和EntityFramework Core上是否有任何解决方案可以在Fluent API设置的运行时读取配置属性?

EF core 没有元数据工作区
若要获取 EF Core Fluent API 设置的注释,请使用以下示例:

    public class Basic {
        public int Id {get; set;}
        public string Value {get; set;}
    }
    public class BasicConfig {
        public void Configure(EntityTypeBuilder<Basic> builder)
        {
            builder.ToTable("Basic");
            builder.HasKey(e => e.Id)
                .HasName("PK_Basic");

            builder.Property(e => e.Value)
                .IsRequired()
                .HasMaxLength(500)
                .IsUnicode(false)
                .HasColumnName("Value");
        }
    }

    /// <summary>
    /// Returns the MaxLength of a PropertyInfo (field) off of a Custom EF modal Type
    /// </summary>
    public int DetermineSize(Type basicModelType) {
        IEntityType fake = _context.Model.FindEntityType(basicModelType);
        IProperty prop = fake.GetProperty("Value");
        IEnumerable<IAnnotation> ann = prop.GetAnnotations();
        int maxSize = (int)ann.SingleOrDefault(item => item.Name.Equals("MaxLength"))?.Value;
        return maxSize;
    }

相关内容

  • 没有找到相关文章

最新更新