Процедура EF 6 Code First Stored - только чтение
Я искал несколько сообщений, но потерпел неудачу. Сначала я использую код EF6, пытаясь получить результаты хранимой процедуры, которая уже настроена в базе данных. Мое приложение простое, оно берет данные с двух разных серверов, выполняет некоторую бизнес-логику, а затем показывает пользователю. Я могу использовать.edmx
Файл отлично, который отображает функцию в файле 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);
}
}