Richiamo della funzione Entity Framework import dal codice

entity-framework

Domanda

Quindi ho una stored procedure chiamata Spr_EventLogCreate definita nel mio database. Ho creato una funzione di importazione nel mio modello di dati chiamato LogEvent con nessun tipo di ritorno, e posso vedere questa funzione nell'albero del Browser del modello in

MyModel.edmx> MyModel> EntityContainer> Function Imports> LogEvent.

Ho pensato che dovrei essere in grado di chiamare la funzione nel mio codice come segue:

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

Ma il metodo LogEvent () non è presente.

Devo essere davvero stupido qui, ma come posso chiamare la mia funzione importata?

Utilizzo di VS 2008 e EF 3.5.

Risposta accettata

Non è possibile generare il codice chiamando la funzione che non risintonizza un set di risultati dal momento della progettazione nel designer Microsoft predefinito. Puoi scrivere il codice chiamandolo manualmente nella definizione parziale della tua classe di contesto. Ecco un esempio:


        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();
        }


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché