Вызов функции Entity Framework для импорта из кода - PullRequest
3 голосов
/ 09 марта 2010

Итак, у меня есть хранимая процедура Spr_EventLogCreate, определенная в моей базе данных. Я создал функцию импорта в моей модели данных с именем LogEvent без возвращаемого типа, и я вижу эту функцию в дереве Обозревателя моделей на

MyModel.edmx> MyModel> EntityContainer> Импорт функций> LogEvent.

Я думал, что тогда я смогу вызвать функцию в моем коде следующим образом:

var context = new MyModelEntities();
context.LogEvent(...);

Но метод LogEvent () отсутствует.

Должно быть, я действительно очень глуп, но как мне вызвать импортированную функцию?

Использование VS 2008 и EF 3.5.

1 Ответ

2 голосов
/ 11 марта 2010

Невозможно сгенерировать код, вызывающий функцию, не перенастраивающую набор результатов из времени разработки в конструкторе Microsoft по умолчанию. Вы можете написать код, вызывающий его вручную в частичном определении вашего контекстного класса. Вот пример:


        public void EmpDelete (global::System.Nullable PEMPNO, global::System.Nullable PDEPTNO)
        {
            if (this.Connection.State != System.Data.ConnectionState.Open)
              this.Connection.Open();
            System.Data.EntityClient.EntityCommand command = new System.Data.EntityClient.EntityCommand();
            command.CommandType = System.Data.CommandType.StoredProcedure;
            command.CommandText = @"DataSourceModel1Entities.EmpDelete";
            command.Connection = (System.Data.EntityClient.EntityConnection)this.Connection;
            EntityParameter PEMPNOParameter = new EntityParameter("PEMPNO", System.Data.DbType.Decimal);
            if (PEMPNO.HasValue)
                PEMPNOParameter.Value = PEMPNO;
            command.Parameters.Add(PEMPNOParameter);
            EntityParameter PDEPTNOParameter = new EntityParameter("PDEPTNO", System.Data.DbType.Decimal);
            if (PDEPTNO.HasValue)
                PDEPTNOParameter.Value = PDEPTNO;
            command.Parameters.Add(PDEPTNOParameter);
            command.ExecuteNonQuery();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...