从 dbContext 获取 IEnumerable<SelectListItem>

穆夫利克斯

我有以下数据库类

namespace Project.Web.Repository
{
    public class Database : DbContext
    {

        public Database(DbContextOptions<Database> options) : base(options)
        {
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
        }

        public virtual DbSet<SelectListItem> SelectListItem {get; set;}

        public IEnumerable<SelectListItem> Categories()
        {
            var query = "SELECT Id as [Value], Name as [Text] FROM enum.Category";
            IEnumerable<SelectListItem> items = SelectListItem.FromSql(query).ToList<SelectListItem>();
            return items;
        }

    }
}

但是打完电话后

_database.BrandCategories();

我正进入(状态

Exception has occurred: CLR/System.InvalidOperationException
An exception of type 'System.InvalidOperationException' occurred in Microsoft.EntityFrameworkCore.dll but was not handled in user code: 'The entity type 'SelectListGroup' requires a primary key to be defined.'

通过 EF Core 从数据库中获取选择列表的首选方法是什么?我是否需要为每个表创建 POCO 类,并在获取数据后将 POCO 类转换为 SelectListItem 集合?

克里斯普拉特

您只能通过 映射到实体类型FromSql,即属于您的上下文的类型。但是,一旦Select到达那里,您就可以使用 LINQ来映射到以下内容SelectListItem

var items = categories.Select(x => new SelectListItem { Value  x.Id, Title = x.Name });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

没有类型为“ IEnumerable <SelectListItem>”的具有关键国家/地区的ViewData项目

如何将项目添加到IEnumerable SelectListItem

具有键“ XXX”的ViewData项的类型为“ System.String”,但必须为类型“ IEnumerable <SelectListItem>”

从HttpPost获取IEnumerable

Post方法之后没有类型为“ IEnumerable <SelectListItem>”的ViewData项目,其键为“ DepartmentId”

动态获取dbcontext

ASP.NET Core MVC-无效的操作异常没有Ienumerable <SelectListItem>类型的viewdata

没有类型为“ IEnumerable <SelectListItem>”的ViewData项目,其键为“ MembershipTypesId”

没有类型为“ IEnumerable <SelectListItem>”的ViewData项目,其键为“ PestType”

没有类型为“ IEnumerable <SelectListItem>”的具有键“ Credit”的ViewData项目

从LINQ select获取IEnumerable

将IDictionary <Guid,string>转换为IEnumerable <SelectListItem>

没有类型为“ IEnumerable <SelectListItem>”的ViewData项目,其键为“ CategoryID”

没有类型为IEnumerable <SelectListItem>'的ViewData项,其键为“ DCResults”

ASP.NET MVC-下拉列表-没有类型为“ IEnumerable <SelectListItem>”的ViewData项

没有类型为“ IEnumerable <SelectListItem>”的具有键“ Projects”的ViewData项目

“没有类型为'IEnumerable <SelectListItem>'的ViewData项,其键为'Skip'

没有类型为“ IEnumerable <SelectListItem>”的ViewData项目,其键为“ CicekListesi”

没有类型为“ IEnumerable <SelectListItem>”的具有键“ SelectedCategoriesIds”的ViewData项目

获取IEnumerable的元素

没有类型为“ IEnumerable <SelectListItem>”的具有键“ ...”的ViewData项。

如何解决下拉列表MVC中的错误“ IEnumerable <SelectListItem>”

没有具有键“ddlcataglist”的“IEnumerable<SelectListItem>”类型的 ViewData 项

如何从 appSettings 获取键值对到 SelectListItem 的集合中?

如何没有具有键“Customer_id”的“IEnumerable<SelectListItem>”类型的 ViewData 项

没有具有键“ddlcontent”的“IEnumerable<SelectListItem>”类型的 ViewData 项

.Net Core 3 Razor 页面 Admin/Product/Upsert.cshtml IEnumerable<SelectListItem> 错误

如何解決 ASP.NET MVC 中沒有“IEnumerable<SelectListItem>”類型的 ViewData 項?

如何获取 SelectListItem[] 的值