У меня есть такая хранимая процедура:
CREATE PROCEDURE PLogin
@pin varchar(50), @ipaddress varchar(50)
AS
BEGIN
SET NOCOUNT ON;
//Some code here ...
SELECT * FROM [dbo].[QRelaceUzivatele_Aktivni] WHERE Pin = @pin AND IPAdresa=@ipaddress
END
Мне нужно выполнить ее из ASP MVC, используя EF Core 2.1.
Я использовал упомянутый здесь подход здесь .
У меня есть собственный класс C # AktivniRelaceUzivatele
, который отображает поля представления QRelaceUzivatele_Aktivni
.
public class AktivniRelaceUzivatele
{
int ProvozID { get; set; }
string NazevProvozu { get; set; }
int UzivatelID { get; set; }
string PIN { get; set; }
string Nick { get; set; }
В контроллере MVC я вызываю:
var qpin = new SqlParameter("p", pin);
var qip = new SqlParameter("ip", ip);
var ar = db.Query<AktivniRelaceUzivatele>()
.FromSql("EXECUTE dbo.PLogin @pin=@p, @ipaddress=@ip", qpin, qip).FirstOrDefault();
В классе dbContext я добавил:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Query<AktivniRelaceUzivatele>();
Я не получаю ошибки компиляции, хранимая процедура выполняется, но значения результата не вставляются в свойства объектов, вместо этого я получаю экземпляры, которые содержат только значения по умолчанию, такие какnull
, 0 и т. Д.