2015-01-15 3 views
0

У меня есть приложение ASP.NET MVC, работающее с несколькими базами данных, одна из которых хранит хранимые процедуры. Мое приложение вместе с хранимой процедурой работает отлично, пока я добавил еще одну строку подключения к базе данных в web.configВызов хранимой процедуры в конкретной базе данных с помощью приложения MVC, соединяющегося с 2 базами данных

Web.config:

<connectionStrings> 
    <add name="AppDbConnection" connectionString="xyz" providerName="System.Data.SqlClient" /> 
    <add name="CIDDbConnection" connectionString="abc" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Я хранимую процедуру AppDbConnection

Сейчас я получаю сообщение об ошибке

Не удалось найти хранимую процедуру «GetAllFunction».
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: Не удалось найти хранимую процедуру «GetAllFunction».

C# код вызова хранимой процедуры:

public List<GetAllFunction_SP_Map> GetAllFunction_From_StoreProcedure() 
{ 
     List<GetAllFunction_SP_Map> query; 

     using (var dbContext = new FunctionContext()) 
     { 
      query = dbContext.Database.SqlQuery<GetAllFunction_SP_Map>("exec GetAllFunction").ToList(); 
     } 

     return query; 
} 

DbContext:

public class FunctionContext : BaseContext<FunctionContext> 
{ 
    public System.Data.Entity.DbSet<App.DAL.Model.GetAllFunction_SP_Map> GetAllFunction_SP_Map { get; set; } 
} 

У меня есть доступ к данным из двух базы данных в отдельной папке приложения, и оба имеют свои DbContext

Мой вопрос как решить эту ошибку, я считаю, как-то мне нужно сказать в C# нам конкретной базы данных, откуда я вызываю хранимую процедуру.

Большое спасибо заранее

ответ

1

Просто добавив строку соединения не вызовет этот вопрос. Я думаю, что произошло в дополнение к этому, ваш FunctionContext также получил изменение, чтобы использовать новую строку подключения. Попробуйте следующее:

using (var dbContext = new FunctionContext("AppDbConnection")) 
{ 
    query = dbContext.Database.SqlQuery<GetAllFunction_SP_Map>("exec GetAllFunction").ToList(); 
} 

... не зная, что еще могло быть изменено.

+0

Я не предполагаю передать объект данных непосредственно в классе, поскольку я использую шаблон хранилища вместе с UnitOfWork – toxic