MVC-3 Prüfen auf Duplikate vor dem speichern in die DB, Anzeige duplizieren Fehlermeldung

Ich brauche, um zu überprüfen auf Duplikate vor dem speichern in der Datenbank erstellen und Bearbeiten-Methoden in meinem controller. Dann brauche ich anzeigen, um eine doppelte Fehlermeldung, anstatt eine generische Fehlermeldung.

Meiner definition eine doppelte ist:
userid + Code1ID + Code2ID + Code3ID + Code4ID.

Frage:
So prüfen Sie ein Duplikat, wenn die Kombination der Werte oben bereits existiert?

Tabelle Name

 Character:
CharacterID int 
UserID int
Code1ID int
Code2ID int
Code3ID int
Code4ID int
Name Varchar(40)

Mein Primärschlüssel ist zusammengesetzt aus UserID + Code1ID + Code2ID + Code3ID + Code4ID.
Dies garantiert, dass keine Duplikate in die Datenbank eingegeben. Aber die Fehlermeldung die ich fahre ist eine Allgemeine Fehlermeldung.

Ich brauche, um zu überprüfen, die Duplikate der ersten und dann wieder eine Warnmeldung oder Fehlermeldung basiert auf der Vervielfältigung allein.

Hier ist der Bearbeiten-Methoden innerhalb der controller

  //
        //GET: /Character/Edit/5

        public ActionResult Edit(int id)
        {
            Character character = db.Characters.Find(id);
        PopulateUserIDDropDownList(character.UserID);
            PopulateCode1IDDropDownList(character.Code1ID);
            PopulateCode2IDDropDownList(character.Code2ID);
            PopulateCode3IDDropDownList(character.Code3ID);
            PopulateCode4IDDropDownList(character.Code4ID);
            return View(character);
        }

        //
        //POST: /Character/Edit/5

        [HttpPost]
        public ActionResult Edit(Character character)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.Entry(character).State = EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            }
            catch
            {
                ModelState.AddModelError("", "Generic Error. Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }
        PopulateUserIDDropDownList(character.UserID);
            PopulateCode1IDDropDownList(character.Code1ID);
            PopulateCode2IDDropDownList(character.Code2ID);
            PopulateCode3IDDropDownList(character.Code3ID);
            PopulateCode4IDDropDownList(character.Code4ID);
            return View(character);
        }

Hier ist die create-Methoden innerhalb der controller

    //
    //GET: /Character/Create

    public ActionResult Create()
    {
    PopulateUserIDDropDownList();
        PopulateCode1IDDropDownList();
        PopulateCode2IDDropDownList();
        PopulateCode3IDDropDownList();
        PopulateCode4IDDropDownList();
        return View();
    } 

    //
    //POST: /Character/Create

    [HttpPost]
    public ActionResult Create(Character character)
    {
        try
        {
            if (ModelState.IsValid)
            {
                db.Characters.Add(character);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
        }
        catch
        {
            ModelState.AddModelError("", "Generic Error.Unable to save changes. Try again, and if the problem persists, see your system administrator.");
        }
    PopulateUserIDDropDownList(character.UserID);
        PopulateCode1IDDropDownList(character.Code1ID);
        PopulateCode2IDDropDownList(character.Code2ID);
        PopulateCode3IDDropDownList(character.Code3ID);
        PopulateCode4IDDropDownList(character.Code4ID);
        return View(character);
    }

Modell

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;


namespace myproject.Models
{
    public class Character
    {
        [Key]
        public int CharacterID { get; set; }

        [Required(ErrorMessage = "User is required.")]
        [Display(Name = "User")]
        public Guid UserId { get; set; }

        [Required(ErrorMessage = "Code1 is required.")]
        [Display(Name = "Code1")]
        public int Code1ID { get; set; }


        [Required(ErrorMessage = "Code2 is required.")]
        [Display(Name = "Code2")]
        public int Code2ID { get; set; }

        [Required(ErrorMessage = "Code3 is required.")]
        [Display(Name = "Code3")]
        public int Code3ID { get; set; }

        [Required(ErrorMessage = "Code4 is required.")]
        [Display(Name = "Code4")]
        public int Code4ID { get; set; }

        [Required(ErrorMessage = "level is required.")]
        [Display(Name = "Level")]
        public int LevelID { get; set; }

        public virtual aspnet_Users Aspnet_User { get; set; }
        public virtual Code1 Code1 { get; set; }
        public virtual Code2 Code2 { get; set; }
        public virtual Code3 Code3 { get; set; }
        public virtual Code4 Code4 { get; set; }

    }
}
  • Was ist deine eigentliche Frage?
  • Ich denke der Titel sagt alles: MVC-3 Prüfen auf Duplikate vor dem speichern in die DB, Anzeige duplizieren Fehlermeldung
InformationsquelleAutor MataHari | 2012-07-05
Schreibe einen Kommentar