Я искал несколько сообщений, но придумал короткий. Я использую код EF6, сначала пытающийся получить результаты из хранимой процедуры, которая уже настроена в базе данных. Мое приложение прост, оно берет данные с двух разных серверов, выполняет некоторую бизнес-логику, а затем показывает пользователя. Я могу использовать файл .edmx
fine, который отображает функцию в XML файле. Когда я использую Power Tools для показа себя XML файлом, я не вижу функцию импорта из моего кода ниже, поэтому я либо не пробовал установку, либо я не могу использовать ExecuteFunction()
.
-
Можно ли сначала использовать код
ExecuteFunction()
с кодом? Моя хранимая процедура возвращает только записи. Причина, по которой я установил эту настройку, состоит в том, что хранимая процедура передает другое приложение, и мы хотим сохранить все изменения в запросе в одном месте (SSMS). Я понимаю, что могу использоватьExecuteStoredQuery
/ExecureStoredCommand
, но я хотел придерживаться соглашения, если бы я использовал модель.edmx
. -
Если я могу использовать
ExecuteFunction
, где и как мне настроить свойDbContext
для распознавания хранимой процедуры? С моей установкой ниже я получаю сообщение об ошибке
Не удалось найти FunctionImport {0} в контейнере {1}
Можно ли использовать Fluent API? Спасибо.
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);
}
}