2017-08-16 74 views
0

.NET核心新功能。實體類型「Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup」需要定義主鍵

試圖實現類似下拉列表: MVC6 Dropdownlist of Countries

在我的模型類我有

public SelectList SiteList { get; set; } 

在我的控制,我有:

var sites = _context.Site.OrderBy(s => s.Name).Select(x => new { Id = x.ID, Value = x.Name }); 

    var model = new Issue(); 
    model.SiteList = new SelectList(sites, "Id", "Value"); 

    return View(model); 

在我看來,我有:

<td class="input-item"> 
<select asp-for="SiteID" asp-items="@Model.SiteList"></select> 
</td> 

當我嘗試執行遷移時,出現以下錯誤: 實體類型'Microsoft.AspNetCore.Mvc.Rendering.SelectListGroup'需要定義主鍵。

我試圖忽視了我的遷移命名空間:

modelBuilder.Entity<Issue>().Ignore(i => i.SiteList); 

但我不能完全肯定,我已經在正確的位置做到了這一點。

回答

0

爲了解決這個問題,簡單地說

[NotMapped] 

選擇列表的屬性以上模型cs文件內:

[NotMapped] 
public SelectList SiteList { get; set; } 

這防止的EntityFramework從列表映射到模型中。由於它不是模型數據庫的一部分,因此它不需要主鍵。

相關問題