在此先感谢您的帮助。我无法使用两个或更多表继续在asp.net mvc中创建或编辑字段。作为示例:我一直在使用MVC音乐商店示例来学习

//
// GET: /StoreManager/Create

public ActionResult Create()
{
    var viewModel = new StoreManagerViewModel
    {
       Album = new Album(),
       Genres = storeDB.Genres.ToList(),
       Artists = storeDB.Artists.ToList()
    };

    return View(viewModel);
}

//
// POST: /StoreManager/Create

  [HttpPost]
  public ActionResult Create(Album album)
  {
     if (ModelState.IsValid)
     {
        //Save Album
        storeDB.AddToAlbums(album);
        storeDB.SaveChanges();
        return RedirectToAction("Index");
     }

   // Invalid – redisplay with errors
   var viewModel = new StoreManagerViewModel
   {
      Album = album,
      Genres = storeDB.Genres.ToList(),
      Artists = storeDB.Artists.ToList()
   };
   return View(viewModel);
}


此示例考虑到相册仅是模型中的一个表。我的主要问题在于,为了将另一个带有FK的表添加到“专辑”,我必须进行编码。作为示例,如果AlbumVariant表-例如:field albumid-显示FK到Album Table-例如:field albumid-。

我一直在尝试

[Authorize]
public ActionResult Create(int? id)
{
   var albumCreate= db.Album.Include(AlbumVariant)SingleOrDefault(a => a.AlbumId == id);
   var viewModel = new AlbumViewModelCreate()
   {
      AlbumCreate = albumCreate,
   };
}


但没有成功。任何帮助将不胜感激。 brdgs

最佳答案

您必须了解AlbumVariant表将AlbumId作为外键,这意味着必须首先生成AlbumId!您可以尝试以下方法:

storeDB.AddToAlbums(album);
storeDB.SaveChanges();
AlbumVariant av = new AlbumVariant {
  ...
  AlbumId = album.Id  //generates after calling the 1st save changes
}
storeDB.AddToAlbumVariant(av);
storeDB.SaveChanges();

关于c# - 如何创建调用两个表的操作方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4531333/

10-11 20:36