В EF Core 3 у меня есть модель, в которой только несколько полей модели будут извлечены из устаревшей хранимой процедуры. Хранимая процедура имеет около 300 строк бизнес-логики c, встроенных в нее, поэтому мы не заинтересованы в том, чтобы из-за попыток тестирования логика c не вынималась из хранимой процедуры.
Не похоже, что выполнение хранимой процедуры внутри get является правильным подходом (оно вызывает исключение InvalidOperation
). Как правильно связать столбцы, которые выходят из хранимой процедуры, с существующей моделью?
Единственный способ, о котором я подумал, - это заполнить эти поля в свойстве load страницы; но, может быть, есть другой способ, который мне не хватает, это лучше. :)
// This is my existing display model
internal partial class MyExistingModel
{
[Key]
public int id{ get; set; }
public int R_Id { get; set; }
public string G_Number { get; set; }
public virtual P1 ParentRuns { get; set; }
public virtual ICollection<P1> AnotherOne { get; set; }
}
Это заголовок хранимой процедуры, который вызывается для каждого MyExistingModel.id
:
get_ComplicatedLogicStuff(@in_id)
AS
SELECT
column1, column2, column3, column4
...
WHERE
table1.id = @in_id;
Спасибо!