2017-04-25 54 views
0

我的實體框架通過這樣的字符串到數據庫「1b2ef80d-038A-49d8-973b-fc783a53b6a3」,而不是我把文本進入輸入字段,這是「文本」。我怎樣才能將確切的值插入表中?實體框架將長期價值,而不是實際的字符串值,以數據庫爲我的ASP.NET核心站點

數據庫表目前我測試僅僅是一列設置爲VARCHAR(400)。

Context類:

modelBuilder.Entity<Contract>(entity => 
      { 
       entity.HasKey(e => e.Contract1) 
        .HasName("Contract$PrimaryKey"); 

       entity.Property<string>(e => e.Contract1) 
        .HasColumnName("Contract") 
        .HasColumnType("VARCHAR(400)") 
        .IsUnicode(false) 
        .HasMaxLength(400); 
      }); 

模型類:

 [Key] 
      [Column(TypeName = "VARCHAR(400)")] 
      [StringLength(400)] 
      public string Contract1 { get; set; } 

查看網頁:

<form asp-action="Create"> 
    <div class="form-horizontal"> 
     <h4>Contract</h4> 
     <hr /> 
     <div asp-validation-summary="ModelOnly" class="text-danger"></div> 
     <div class="form-group"> 
      @Html.LabelFor(model => model.Contract1, new { @class = "col-md-2 control-label" }) 
      <div class="col-md-10"> 
      @Html.EditorFor(model => model.Contract1) 
      @Html.ValidationMessageFor(model => model.Contract1) 
       <span class="text-danger"></span> 
      </div> 
     </div> 
     <div class="form-group"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Create" class="btn btn-default" /> 
      </div> 
     </div> 
    </div> 
</form> 

<div> 
    <a asp-action="Index">Back to List</a> 
</div> 

@section Scripts { 
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} 
} 
</body> 
</html> 

和控制器:

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public async Task<IActionResult> Create([Bind("Contract")] Contract Contract) 
     { 
      if (ModelState.IsValid) 
      { 
       _context.Add(Contract); 
       await _context.SaveChangesAsync(); 
       return RedirectToAction("Create"); 
      } 
      ViewData["Contract"] = new SelectList(_context.Contract, "Contract", "Contract", Contract.Contract1); 
      return View(Contract); 
     } 
    } 
} 

回答

0

我不得不添加類,而不僅僅是上下文。添加我必須使它context.cAdd.Add:

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public async Task<ActionResult> Create(Contract Contract) 
     { 
      if (ModelState.IsValid) 
      { 
       _context.Contract.Add(Contract); 
       await _context.SaveChangesAsync(); 
       return RedirectToAction("Index"); 
      } 
      ViewData["Contract"] = new SelectList(_context.Contract, "Contract", "Contract", Contract.Contract1); 
      return View(Contract); 
     } 
    } 
} 
相關問題