1

非常に簡単に列を追加および削除できますが、テーブルの列を編集できないという問題があります。私は以前にこの種のことをしたことがあり、問題はなかったので、なぜ今起こっているのかと困惑しています。

プレーヤー名をクリックして詳細を表示することはできますが、ビューでプレーヤーの詳細を編集して[保存]をクリックすると、シーケンスに要素が含まれていないと表示されます。

それが私を夢中にさせているので、誰かが私がこの問題を修正するのを手伝ってくれませんか?それはおそらく単純な解決策であるため、それは大いにありがたいです。

これが私のコードです:

リポジトリ:

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");
    }
}
4

1 に答える 1

0

シーケンスに要素が含まれていないということは、期待したときにクエリが結果を返さなかったことを意味します(要素が見つからない場合にnullを返すFirstOrDefault()の代わりにFirst()を使用)。編集したプレイヤーデータを使ってルックアップを行おうとしているので、データベースにはまだ存在しないプレイヤーの名前を変更したに違いないと思います。

IDは編集できず、編集しようとしているデータを参照するため、プレーヤーのルックアップにIDを使用する必要があります。

于 2012-07-29T15:21:19.950 に答える