我遇到了编辑表中列的问题,即使我可以很容易地添加和删除它们。我之前做过这样的事情并没有遇到任何问题,所以我很难理解为什么现在这样。
我可以点击玩家名称并获取他的详细信息,但是当我在视图中编辑玩家详细信息并单击“保存”时,它说“序列”不包含任何元素。
有人可以帮助我纠正这个问题,因为它让我发疯,因为它很可能是一个简单的解决方案,所以会非常感激。
这是我的代码:
存储库:
public Players PlayersDetails(String Name)
{
var players = (from p in _entities.Players
where p.FullName == Name
select p).First();
return players;
}
public void playersEdit(Players playersToEdit)
{
var originalPlayer = PlayersDetails(playersToEdit.FullName);
_entities.ApplyPropertyChanges(originalPlayer.EntityKey.EntitySetName, playersToEdit);
_entities.SaveChanges();
}
IRepository:
public interface IHuddRLRepository
{
//Player List
IEnumerable<Players> PlayersList();
Players PlayersDetails(String Name);
void playersCreate(Players playersToCreate);
void playersEdit(Players playersToEdit);
void playersDelete(Players playersToDelete);
}
控制器:
public ActionResult Edit(String FullName)
{
Players players = _entities.PlayerDetails(FullName);
return View(players);
}
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(Players playersToEdit)
{
if (!ModelState.IsValid)
{
return View();
}
else
{
_entities.playersEdit(playersToEdit);
return RedirectToAction("Index", "Players");
}
}
答案 0 :(得分:0)
序列不包含任何元素意味着查询在您期望的时候没有返回结果(使用First()而不是FirstOrDefault(),当没有找到元素时返回null)。我猜测,因为你尝试使用编辑过的玩家数据进行查找,所以你必须更改玩家的名字,这个名字在数据库中还不存在。
您应该做的是使用ID进行播放器查找,因为它不可编辑,并且会引用您尝试编辑的数据。