"The property is not supported by current database provider"

"The property is not supported by current database provider"

我遇到了类似的错误:

但问题略有不同:

我有以下 classes:

    public class Apple
    {
        public Box Box{ get; set; }

        public int R { get => Color.R; set => Color = new Color (value, Color.G, Color.B); }

        public int G { get => Color.G set => Color = new Color (Color.R, value, Color.B); }

        public int B { get => Color.B set => Color = new Color (Color.R, Color.G, value); }

        [NotMapped]
        public Color Color { get; set; }    
    }

    public class Box
    {
        [Key]
        public int ID { get; set; }

        public IEnumerable<Apple> Apples { get; set; }
    }

在 DbContext 中 class:

        modelBuilder.Entity<Apple>()
            .HasKey(a=> new { a.Box, a.R, a.G, a.B });

但它似乎不起作用并给我错误消息:“属性 'Apple.Box' 的类型 'Box' 不受当前数据库提供程序支持。要么更改属性 CLR 类型或使用“[NotMapped]”属性或使用 'OnModelCreating'

中的 'EntityTypeBuilder.Ignore' 忽略 属性

键必须是数据库类型而不是 CLR 类型。可以将 CLR 类型作为属性,只要它们不是键即可。