我在尝试创建心愿单时遇到问题。
我有一个包含国家公园记录的数据库。
我也有一个包含远足者记录的数据库。
我在“公园详细信息”视图页面上有一个按钮,该按钮应该重定向到操作。
该按钮正在传递停车ID,因此我已经通过参数获得了该ID。
我创建了一种方法来查找已登录的用户和当前公园,但是我一直试图将项目添加到数据库中。
我不确定Junction表应该是什么样子。
最初,我将其设置如下,但是遇到了与循环遍历单个对象有关的错误:
我的前一篇帖子使我相信我应该尝试以下操作:
任何远足者都应该能够将任何/所有公园添加到其愿望清单中。
任何/所有远足者的愿望清单中都可以存在任何公园,因此应该是多对多关系(如果错了,请纠正我)
我要去哪里错了?
当前错误:
我觉得我应该使用IEnumerable或动作列表,但是我不确定如何实现它。
我有一个包含国家公园记录的数据库。
我也有一个包含远足者记录的数据库。
我在“公园详细信息”视图页面上有一个按钮,该按钮应该重定向到操作。
C#:
@Html.ActionLink("Add Park to Wish List", "AddParkToWishList", "Hiker", new { @id = Model.ParkId }, new { @class = "btn btn-default" })
该按钮正在传递停车ID,因此我已经通过参数获得了该ID。
我创建了一种方法来查找已登录的用户和当前公园,但是我一直试图将项目添加到数据库中。
C#:
public async Task<ActionResult> AddParkToWishList(int id)
{
string currentUser = FindRegisteredUserId(); // AspNetUser Id
var currentHiker = _context.Hikers.Where(h => h.ApplicationId == currentUser); // Match against Hikers to find logged in user
// Find current park
var currentPark = _context.Parks.Where(p => p.ParkId == id).FirstOrDefault();
HikerParkWishlistViewModel wishlist = new HikerParkWishlistViewModel()
{
wishlist.Hiker = currentHiker;
// STUCK HERE. CAN'T ADD ANYTHING TO JUNCTION TABLE
}
await _context.SaveChangesAsync();
return RedirectToAction("Details");
}
我不确定Junction表应该是什么样子。
最初,我将其设置如下,但是遇到了与循环遍历单个对象有关的错误:
C#:
public class HikerParkWishlist // Junction table
{
[Key]
public int HikerParkWishlistId { get; set; }
[ForeignKey("Hiker")]
public int HikerId { get; set; }
public Hiker Hiker { get; set; }
[ForeignKey("Park")]
public int ParkId { get; set; }
public string ParkName { get; set; }
public Park Park { get; set; }
}
我的前一篇帖子使我相信我应该尝试以下操作:
C#:
public class HikerParkWishlist
{
[Key]
public int HikerParkWishlistId { get; set; }
[ForeignKey("Hiker")]
public IEnumerable<Hiker> Hiker { get; set; }
[ForeignKey("Park")]
public IEnumerable<Park> Parks { get; set; }
}
任何远足者都应该能够将任何/所有公园添加到其愿望清单中。
任何/所有远足者的愿望清单中都可以存在任何公园,因此应该是多对多关系(如果错了,请纠正我)
我要去哪里错了?
当前错误:
C#:
CS1922 C# Cannot initialize type with a collection initializer because it does not implement 'System.Collections.IEnumerable'
我觉得我应该使用IEnumerable或动作列表,但是我不确定如何实现它。
Last edited: