Я использую ASP.NET Core 2.0 и бритвенные страницы.Таблица SQL не имеет первичного ключа, и я не смогу вносить изменения в таблицу SQL.Я пытаюсь использовать хранимую процедуру для извлечения данных из таблицы и отображения результирующих данных в пользовательском интерфейсе.
Поскольку первичный ключ недоступен, я получаю сообщение об ошибке как - Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.ValidateNonNullPrimaryKeys.Я хотел бы переместить код из DBSet в Raw sql, как определено в https://www.learnentityframeworkcore.com/raw-sql Ниже приведен мой существующий код:
//Data - myDbContext
public class MyDbContext : DbContext
{
public DbSet<LOB> lobs { get; set; }
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
{
}
}
// Model
public class LOB
{
public string Desc { get; set; }
}
//Index.cshtml.cs
public class IndexModel : PageModel
{
private readonly MyDbContext _dbContext;
public IndexModel(MyDbContext dbContext)
{
_dbContext = dbContext;
}
public List<LOB> lOBs { get; set; } = new List<LOB>();
[BindProperty]
public string[] SelectedLOBs { get; set; }
public SelectList LOBOptions { get; set; }
public async Task OnGetAsync()
{
lOBs = await _dbContext.Set<LOB>().FromSql(
"EXECUTE sp")
.AsNoTracking()
.ToListAsync();
LOBOptions = new SelectList(lOBs, "Desc1");
}
}
// Index.cshtml
<select class="form-control" required multiple id="selLOB" asp-for="SelectedLOBs" asp-items="Model.LOBOptions"></select>
Как заполнить раскрывающийся список, используя свойство context.database?Спасибо