Как определить хранимую процедуру в Entity Framework (сначала код)? - PullRequest
7 голосов
/ 10 января 2012

Я определяю свою модель в Entity Framework (сначала код), но как мне определить хранимую процедуру в моей модели?Я хочу создать свою модель и заставить ее генерировать хранимую процедуру в моей базе данных, когда моя база данных генерируется из моей модели.

Ответы [ 2 ]

11 голосов
/ 10 января 2012

Описание

Нет встроенной поддержки прямого отображения для хранимых процедур в коде Entity Framework. Но вы можете выполнить любой SQL-запрос (создать хранимую процедуру), как в моем примере.

Пример

public class MyDatabaseContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        DbCommand cmd = Database.Connection.CreateCommand();
        cmd.CommandText = "create stored procedure ....";
        cmd.ExecuteNonQuery();
    }   
}

Дополнительная информация

2 голосов
/ 03 июля 2014

Я использую Entity Framework 6, поэтому все может измениться.База данных не создается в OnModelCreating, но она работает в DbInitializer следующим образом ...

public class MyDbInitializer : DropCreateDatabaseIfModelChanges<MyDbContext> {
    protected override void Seed(MyDbContext context) {
        string sql = @"CREATE PROCEDURE...";
        context.Database.ExecuteSqlCommand(sql);

        base.Seed(context);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...