Entity Framework Code Сначала настройте схему для объекта - PullRequest
5 голосов
/ 11 мая 2011

В LINQ to SQL очень просто указать мапперу, какую схему базы данных использовать - [Table(Name = "SchemaName.TableName")].

Есть ли что-то похожее в EF CF 4.1? Я бы предпочел не использовать аннотации в классах сущностей, чтобы сохранить их как можно более чистыми. Ради того, чтобы продвигать свой проект, я все же пожертвую.

Этот вопрос близок, но не совсем то, что мне нужно. Возможно, он даже устарел, поскольку выглядит так, как будто он ссылается на классы, которые были переименованы или претерпели существенные изменения после недавнего выпуска EF 4.1 - Entity Framework 4: Code First - Создание БД в другой схеме? MapSingleType

РЕДАКТИРОВАТЬ: я должен также упомянуть, что мое приложение в настоящее время имеет три схемы, поэтому я не могу обязательно использовать решение, которое изменяет только схему по умолчанию с "dbo" на "otherschema".

1 Ответ

8 голосов
/ 11 мая 2011

Связанный ответ устарел и не работает, поскольку пользовательские соглашения были удалены из окончательной версии.Если вы хотите изменить имя схемы, вы можете использовать свободный API:

public class Context : DbContext
{
    public DbSet<YourType> YourTypeSet { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName");
    }
}
...