Как проверить наличие дублирующих данных в базе данных с помощью asp.net mvc - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу показать сообщение о том, что JourneyID уже существует в базе данных.

Модель:

using System.Web.Mvc;
namespace Project_Final.Models
{
using System;

public partial class sp_FMS_Group6_Module3_ViewBonusMilesRequesttt_Result
{
    public int RequestID { get; set; }
    public Nullable<long> CustomerID { get; set; }
    [Remote("Check", "Home", ErrorMessage = "Bonus Miles Request has already been sent!")]
    public Nullable<int> JourneyID { get; set; }
    public Nullable<System.DateTime> RequestDate { get; set; }
    public string Status { get; set; }
}
}

Ниже перечислены действия в моем контроллере:

[HttpPost]
public ActionResult Index(string Create)
{        
        FMS_Group6_Module3_BonusMilesRequestt objProd = new FMS_Group6_Module3_BonusMilesRequestt();
        objProd.CustomerID = int.Parse(Request.Form["CustomerID"].ToString());
        objProd.JourneyID = int.Parse(Request.Form["JourneyID"].ToString());
        objProd.RequestDate = DateTime.Parse(Request.Form["RequestDate"].ToString());
        objProd.Status = "Pending";

        objDB.FMS_Group6_Module3_BonusMilesRequestt.Add(objProd);

        int i = objDB.SaveChanges();
        if (i > 0)
            ViewBag.Message = "Product details saved successfully";
        return Content("<script language='javascript' type='text/javascript'>alert('Your Bonus Miles Request has been successfully sent!');window.location='/Home/GetID'</script>");
        //return Redirect("GetID");
}

public ActionResult Check(string Crreate)
{
        FMS_Group6_Module3_BonusMilesRequestt objProd = new FMS_Group6_Module3_BonusMilesRequestt();
        bool ifJourneyIDExist = false;
        try

        {

            ifJourneyIDExist = Crreate.Equals(objProd.JourneyID) ? true : false;

            return Json(!ifJourneyIDExist, JsonRequestBehavior.AllowGet);

        }

        catch (Exception ex)

        {

            return Json(false, JsonRequestBehavior.AllowGet);

        }
}

Любая помощь будет принята с благодарностью. Благодаря.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

LINQ-запрос, чтобы убедиться, что все значения (например, перечислимые) не дублируются

var noDuplicationVariable = enumerableValues.GroupBy(a => a.Key).All(b => b.Count() == 1);

используйте его как условие утверждения перед вашей функцией

0 голосов
/ 07 сентября 2018

Перед вставкой вы можете проверить в БД, существует ли JourneyID.

if (objDB.FMS_Group6_Module3_BonusMilesRequestt.Any(x => x.JourneyID == objProd.JourneyID))
{
    // Exists
}
...