相关疑难解决方法(0)

如何在EF中配置一对多关系

我有以下型号

public class PageConfig : Base
{
    // Properties Etc..

    public ICollection<Image> ScrollerImages { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的方法是使用联结表{PageConfigID,ImageID}进行绑定.

在我的模型活页夹中我尝试了以下..

modelBuilder.Entity<PageConfig>()
    .HasMany(x => x.ScrollerImages)
    .WithMany()
    .Map(x =>
    {
        x.ToTable("junc_PageConfigScrollerImages");
        x.MapLeftKey("PageConfigID");
        x.MapRightKey("ImageID");
    });
Run Code Online (Sandbox Code Playgroud)

这导致图像的空集合.

如何将这些图像绑定到PageConfig模型?

编辑

大多数问题是由于用户错误.这发生在你身上......

检查数据库中的键约束是否已正确设置.
模型上的ICollection NEEDS是虚拟的.

c# entity-framework one-to-many model-binding junction-table

10
推荐指数
1
解决办法
2万
查看次数

ASP.Net Core 3.1 MVC - 带有对象列表的多选

所以,基本上目标是:

用户从选择列表中为一本书(流派)选择多个“类别”。一些例子是:

  • 动作与冒险
  • 经典
  • 漫画书或图画小说

用户选择 1 个或多个(如此多个)后,他们会将书籍保存到数据库中。

就功能而言,当我处理单一类型(该类型被保存为单个字符串)时,一切都运行良好,但我需要支持多种类型。

我做的第一件事就是简单地将string Categoryto更改为List<string> Categories,但这导致了此处看到的错误:StackOverflow 问题,该问题已解决 我尝试了“TuPack”提供的解决方案,该错误消失了......但它导致了一个全新的问题问题。

您已经了解了我现在的情况:为了从我的 中获得任何结果<select></select> ,我必须这样做:

<select asp-for="CategoryIds[0].CategoryId" asp-items="ViewBag.Language"
        class="form-control" multiple="multiple">
   <option value="">Please choose book language</option>                    
</select>
Run Code Online (Sandbox Code Playgroud)

这当然有效......用于获取用户选择的第一个类别。仅此而已。

至于到目前为止的代码,从相关性角度来看......我将切断与数据库相关的内容,因为问题早在那时就发生了:

控制器:

public async Task<ViewResult> AddNewBookAsync(bool isSuccess = false, int bookId = 0)
        {
            var model = new BookModel();
            
            ViewBag.Language = new SelectList(await _languageRepository.GetLanguages(), "Id", "Name");

            ViewBag.IsSucess = isSuccess;
            ViewBag.BookId = bookId;            
            return View(model);
        }

        [HttpPost]
        public async Task<IActionResult> AddNewBook(BookModel bookModel)
        {


            if (ModelState.IsValid)
            { …
Run Code Online (Sandbox Code Playgroud)

c# razor asp.net-core

6
推荐指数
1
解决办法
3238
查看次数