Как определить модель данных как переменную SQL, а не таблицу или представление в EF Core?C#

Место общения программистов C#
Ответить
Anonymous
 Как определить модель данных как переменную SQL, а не таблицу или представление в EF Core?

Сообщение Anonymous »

Я не могу выяснить, правильно ли я определил модель данных как переменную SQL, а не таблицу или представление, в EF Core, потому что хранящаяся процедура SQL Server и веб -приложение Blazor успешно общаются друг с другом. < /p>

Я использую SQL Server 2017 и .NET 9, здесь My Model:
P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> P> Pre Server 2017 и .NET 9, здесь. class = "lang-cs prettyprint-override">

Код: Выделить всё

[Keyless]
public class SqlOutput
{
[Column("SP_OUTPUT")]
public string? SpOutput { get; set; }
}
А вот как я установил модель данных sqloutput в DBContext :

Код: Выделить всё

public DbSet SqlOutput { get; set; }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasNoKey()
.ToView(null);
}
Я ожидал, что EF Core рассматривает заданную модель данных как переменную запись из хранимой процедуры, а не как объект таблицы или представление.

Код: Выделить всё

CREATE PROCEDURE myStoredProcedure
@id INT,
@random_text VARCHAR(50),
@key VARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;

DECLARE @successful VARCHAR(20) = 'SUCCESSFUL';

IF @key = 'MOD_REC'
BEGIN

UPDATE myDB.dbo.myTable
SET random_text = @random_text
WHERE id = @id AND disable = 0

IF @@ROWCOUNT > 0
BEGIN

SELECT @successful AS SP_OUTPUT

END

ELSE
BEGIN

SELECT NULL AS SP_OUTPUT

END

END
END
< /code>
В этом фрагменте C# кода: < /p>
var result = await _context.SqlOutput
.FromSql(sqlParam)
.ToListAsync();

return result.FirstOrDefault();
ожидаемый сценарий оператора обновления выполняется должным образом, за исключением ответа, который является либо успешным , либо null . Вместо этого он дает этот результат из раздела переменных во время отладки с использованием точки останова:

Я определяю модель данных, или я не буду что -то, что я не буду что -то, что я не знаю, или я не буду что -то, я не буду что -то, что я не буду что -то невыполнить? />
Любая помощь будет высоко оценена! < /p>

Подробнее здесь: https://stackoverflow.com/questions/797 ... in-ef-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»