簡體   English   中英

如何使用ASP.NET MVC剃須刀中的實體框架檢查數據庫中是否存在記錄?

[英]How to Check if record exist in database using Entity Framework in ASP.NET MVC razor?

控制器是否可以使用ADO.NET檢查數據庫中是否存在記錄?

這是我的控制器

[HttpPost]
public ActionResult Add(TemporaryVoucher temporaryVoucher)
{
    string fileName = Path.GetFileNameWithoutExtension(temporaryVoucher.ImageFile.FileName);
    string extension = Path.GetExtension(temporaryVoucher.ImageFile.FileName);
    fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension;

    /*temporaryVoucher.VoucherPath = "/Image/" + fileName;
    fileName = Path.Combine(Server.MapPath("/Image/"), fileName);*/
    temporaryVoucher.VoucherPath = fileName;

    using (DBModels db = new DBModels())
    {
        db.TemporaryVouchers.Add(temporaryVoucher);
        db.SaveChanges();
    }

    ModelState.Clear();
    return View();
}

這是我的ado.net模型

public partial class TemporaryVoucher
{
    public int PromoKey { get; set; }
    public string PromoName { get; set; }
    [DisplayName("Upload Image")]
    public string VoucherPath { get; set; }

    public HttpPostedFileBase ImageFile { get; set; }
}

這是我的看法

<div class="form-group">
        @*Html.LabelFor(model => model.ImageName)*@
        <label name="PromoName" style="text-align: right; clear: both; float:left;margin-right:15px;">PromoName</label>
        <div class="col-md-10">
            @*Html.EditorFor(model => model.ImageName, new { htmlAttributes = new { @class = "form-control", required = "required" } })
                @Html.ValidationMessageFor(model => model.ImageName, "", new { @class = "text-danger" })*@
            <input type="text" name="PromoName" id="txtInput" onkeypress="return checkSpcialChar(event)" required />
        </div>
    </div>
    <div class="form-group">
        @*Html.LabelFor(model => model.ImagePath, htmlAttributes: new { @class = "control-label col-md-2" })*@
        <label name="ImagePath" style="text-align: right; clear: both; float:left;margin-right:15px;margin-top:5px;">Upload Image</label>
        <div class="col-md-10">
            <input type="file" style="margin-top:5px;" name="ImageFile" accept=".jpg,.jpeg,.png" required />
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Upload" style="margin-top:5px;" class="btn btn-default" />
        </div>
    </div>
</div>

我只想確保數據庫中PromoName不可能重復

您可以根據任何標識列在控制器操作中執行“獲取”,以檢查數據庫中的現有值。 如果存在,則返回一條消息,否則將傳入的模型添加到數據庫中。 像這樣:


using (DBModels db = new DBModels())
{   
    TemporaryVoucher tv = (from t1 in db.TemporaryVouchers
                           where t1.PromoKey == temporaryVoucher.PromoKey  // any identifier comparison can be done here
                           select t1).FirstOrDefault();
    if(tv != null)
        // return with a message that incoming temporary voucher already exists
    db.TemporaryVouchers.Add(temporaryVoucher);
    db.SaveChanges();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM