难道EF6.x只会将public的实体类映射到数据库?

一般我们在开发过程中,都是将POCO实体类中属性设置为public。那么如果我们想要设置为非public,会映射到数据库吗?答案是不可以的。默认情况下EF6.x Code First 仅仅只映射实体中的公有属性,如果我们想映射实体中的所有非公有属性,那么就需要在OnModelCreating 方法中手动配置映射非公有属性。

modelBuilder.Types().Configure(d =>
                {
                    var nonPublicProperties = d.ClrType.GetProperties(BindingFlags.NonPublic | BindingFlags.Instance);
                    foreach (var nonPublicProperty in nonPublicProperties)
                    {
                        d.Property(nonPublicProperty).HasColumnName(nonPublicProperty.Name);
                    }
                });

你可能感兴趣的:(难道EF6.x只会将public的实体类映射到数据库?)