.Net Core新手。
尝试实现类似于的下拉列表: MVC6 Dropdownlist of Countries
在我的模特课中我有
<td class="input-item">
<select asp-for="SiteID" asp-items="@Model.SiteList"></select>
</td>
在我的控制器中,我有:
modelBuilder.Entity<Issue>().Ignore(i => i.SiteList);
在我看来,我有:
{{1}}
当我尝试实现迁移时,出现以下错误: 实体类型“Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup”需要定义主键。
我尝试忽略我的迁移命名空间:
{{1}}
但我并不完全确定我是在正确的位置做到了这一点。
答案 0 :(得分:0)
为了解决这个问题,只需输入
即可[NotMapped]
在模型.cs文件中的SelectList属性之上:
[NotMapped]
public SelectList SiteList { get; set; }
这可以防止EntityFramework将列表映射到模型。由于它不是模型数据库的一部分,因此不需要主键。
答案 1 :(得分:0)
我以前遇到过这个问题。我的问题最终是,在对控制器进行编码时,我意外地为我的视图模型生成了一个DbSet,并在List<SelectListItem>
文件的底部带有ApplicationDbContext.cs
。 [NotMapped]
“修复”更像是解决问题的绷带,而不是真正解决引起错误的原因。
检查您的ApplicationDbContext.cs
文件中是否有视图模型的DbSet,其中包含您的List<SelectListItem>
,然后将其删除。
看起来应该像这样:
public DbSet<TodoItemViewModel> TodoItemViewModel { get; set; }