Отображение результатов хранимой процедуры в пользовательский класс с помощью EF Core FromSql возвращает экземпляры со значениями по умолчанию - PullRequest
0 голосов
/ 08 октября 2018

У меня есть такая хранимая процедура:

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 и т. Д.

1 Ответ

0 голосов
/ 08 октября 2018

Можете ли вы попытаться добавить публичные классификаторы в переменные класса?Я думаю, что у меня были похожие проблемы, когда я пропускал как геттеры, так и сеттеры и публичные классификаторы.

...