1

自動増分主キーに問題があります..

学生をデータベースに追加するとき、同じ学生を何度も追加できます。これは、学生の主キーが自動インクリメンタルであるため、もちろん繰り返されることはないため、学生の SSN が追加されていないことを確認する必要があるためです。挿入する前にすでにデータベースに存在します。

どうすればmvc3でそれを行うことができますか?? (私は.netとmvc3でまったく新しい)

学生コントローラーで作成するための私のコードは次のとおりです。

[HttpPost]
    public ActionResult Create(Alumno alumno)
    {
        try
        {
            using (var db = new administracionEntities())
            {
                db.Alumno.Add(alumno);
                db.SaveChanges();
            }
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }
4

2 に答える 2

1

挿入する前に、入力 alumno.ssn が存在しないかどうかを確認してください

db.Alumno.where(a=> a.ssn == alumno.ssn).Any()

これが true を返す場合、データベースに ssn が存在します。

MVC でこれを実現する方法はいくつかあります。そのうちの 1 つは、Create Action ではなく、コントローラへの別の呼び出しでこの呼び出しを行うことができます。クライアント側のSSNテキストボックスぼかしイベントでのJQuery.Ajax呼び出しを通じて、重複したSSNが存在するかどうかを確認できる場合があります。

$.ajax({
   type: "Get",
   url: "StudentController/DoesSSNExist",
   data: "ssn=#", 
   success: function(msg){
       if(msg)
        alert('ssn already exists');
   }

これはコントローラのアクションです

public bool DoesSSNExist(string ssn)
{
    return db.Alumno.where(a=> a.ssn == ssn).Any()
}
于 2012-06-18T07:12:27.647 に答える