Предположим (упрощенный) доменный объект, подобный этому:
public class MyObject
{
public Guid Id { get; set; }
public String Field1 { get; set; }
public String Field2 { get; set; }
}
Прилагается к моему контексту таким образом:
public class MyDbContext : DbContext
{
public DbSet<MyObject> MyObjects { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("myschema");
modelBuilder.Configurations
.AddFromAssembly(Assembly.GetExecutingAssembly());
modelBuilder.Conventions
.AddFromAssembly(Assembly.GetExecutingAssembly());
}
}
И отображается так:
public class MyObjectMapping : EntityTypeConfiguration<MyObject>
{
public MyObjectMapping()
{
ToTable("MyObject", "myschema");
HasKey(x => x.Id);
}
}
Тем не менее, если я загружу свой объект из xml и сохраню его в БД:
var myObject = MyObjects.FromXml(xmlFilepath).ToDomain();
var context = new MyDbContext();
context.MyObjects.Add(myObject);
context.SaveChanges();
Я получаю эту ошибку:
System.Data.SqlClient.SqlException Неверное имя объекта
'dbo.MyObjects'.
Где dbo
вместо myschema
.
Вопрос
Что я должен сделать, чтобы убедиться, что вместо схемы используется правильная схема
ПСЭ?
Я установил схему специально для определения контекста и сопоставления, что мне не хватает?