Primeiro procedimento armazenado do código EF 6 - somente leitura
Eu pesquisei alguns posts, mas acabei sendo curto. Estou usando o código EF6 primeiro tentando obter resultados de um procedimento armazenado que já está configurado em um banco de dados. Meu aplicativo é simples, pega dados de dois servidores diferentes, executa alguma lógica de negócios e mostra o usuário. Eu posso usar o.edmx
file fine, que mapeia a função no arquivo xml. Quando uso o Power Tools para me mostrar o arquivo XML, não vejo a função importada do meu código abaixo, por isso estou perdendo uma configuração ou não posso usarExecuteFunction()
.
Posso usar oExecuteFunction()
com o código primeiro? Meu procedimento armazenado retorna apenas registros. A razão pela qual eu tenho essa configuração é porque o procedimento armazenado alimenta outro aplicativo e queremos manter todas as alterações na consulta em um único local (SSMS). Eu percebo que eu poderia usarExecuteStoredQuery
/ ExecureStoredCommand
, mas eu queria manter a convenção se usasse o.edmx
modelo.
Se eu puder usarExecuteFunction
, onde e como faço para configurar meuDbContext
reconhecer o procedimento armazenado? Com minha configuração abaixo, recebo o erro
Não foi possível encontrar o FunctionImport {0} no contêiner {1}
Posso usar a API Fluent? Obrigado.
public class JobContext : DbContext
{
public JobContext()
: base("name=JobContext")
{
// My context will only define a slice of the database
Database.SetInitializer<JobContext>(null);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.ComplexType<Job>();
}
public virtual ObjectResult<Job> uspGetJobs(string startDate)
{
var startDateParameter = startDate != null ?
new ObjectParameter("startDate", startDate) :
new ObjectParameter("startDate", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.<Job>("uspGetJobs", startDateParameter);
}
}