Когда вы используете метод ignore для fluent api для столбца, он не будет создавать этот столбец на сервере sql (игнорирует его).
Ваш результат хранимой процедуры даст вам несколько столбцов на основе вашего созданного запроса
и имена этих столбцов должны совпадать с именами свойств вашей сущности.
Например, ваша процедура дает вам таблицу с этими столбцами, а также совпадающими типами данных на сервере sql и в вашем классе:
- Широта
- Долгота
- Радиус
- Расстояние
Затем вы должны создать класс для вашей процедуры:
public class LocationProcedure {
public string Latitude {get;set;}
public string Longitude {get;set;}
public string Radius {get;set;}
public string Distance {get;set;}
}
, а также добавьте dbset этого типа в ваш dbContext с [NotMapped]
Атрибут:
[NotMapped]
public DbSet<LocationProcedure> CustomerLocation {get; set:}
Атрибут сообщает, что это не должна быть таблица в базе данных.
Наконец, вы можете использовать вашу процедуру с новым набором данных CustomerLocation
, а затем она отобразит результаты в LocationProcedure class.
await SalesContext.CustomerLocation
.FromSql("GetCustomersByLocation @latitude={0}, @longitude={1}, @radius={2}", lat,
lon, radius)
.ToListAsync();