.Net Core. DbContext, DataAnnotation, EF (, ).
NotMapped NotMapped OData NotMapped NotMapped $select, NotMapped EF , OData.
TestDbContext ModelDbContext (, , DbContextBase DbContextBase EF Ignore), ModelBuilder .
public class TestDbContext : ModelDbContext
{
public ModelBuilder ModelBuilder { get; private set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
this.ModelBuilder = modelBuilder;
}
}
, :
. EF, , Ignored. , , EF .
[Fact]
public void OnModelCreatingTest()
{
DbContextOptionsBuilder<ModelDbContext> builder = new DbContextOptionsBuilder<ModelDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString());
var context = new TestDbContext(builder.Options);
var testEntity = context.ExampleEntities.FirstOrDefault();
var builderProperty = typeof(EntityTypeBuilder).GetProperty(
"Builder",
System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
context.ModelBuilder.Entity(
typeof(ExampleEntity),
b =>
{
InternalEntityTypeBuilder baseBuilder = (InternalEntityTypeBuilder)builderProperty.GetValue(b);
Assert.True(baseBuilder.IsIgnored("Property1", ConfigurationSource.Convention));
Assert.True(baseBuilder.IsIgnored("Property2", ConfigurationSource.Convention));
});
}