在此先感谢您的帮助。我无法使用两个或更多表继续在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/