Ich versuche, einen Datensatz aus meiner Datenbank mit Entity Framework
zu aktualisieren Das Problem ist, wenn ich versuche, den Datensatz zu aktualisieren, bekomme ich die DbEntity Validierungsfehler weil Ich habe [EmailAddress] Validierung auf meinem Modell, gibt es trotzdem diese Validierung zu überschreiben, wenn ich etwas aktualisieren möchte?Wie überschreibt man eine Modellvalidierung beim Aktualisieren eines Datensatzes in der Datenbank mit Entity Framework
Modell:
public partial class T
{
public int Id { get; set; }
[Required]
public string name { get; set; }
public string lastname { get; set; }
[Required]
[EmailAddress]
public string email { get; set; }
}
und das ist das Update:
[HttpPost]
public ActionResult UpdateR(int id, FormCollection collection)
{
try
{
var user = new T() { Id = id, email = "Deactivated"};
using (var db = new Database1Entities())
{
db.T.Attach(user);
db.Entry(user).Property(x => x.email).IsModified = true;
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (Exception e)
{
ViewBag.message = e.ToString();
return View();
}
}
und die Aussicht:
<table id="mytable" class="table table-bordered table-striped">
<thead>
<tr>
<th>@Html.DisplayNameFor(item => item.name)</th>
<th>@Html.DisplayNameFor(item => item.lastname)</th>
<th>@Html.DisplayNameFor(item => item.email)</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(mitem => item.name)</td>
<td>@Html.DisplayFor(mitem => item.lastname)</td>
<td>@Html.DisplayFor(mitem => item.email)</td>
<td>@Html.ActionLink("Update", "UpdateR", new { id = item.Id})
</td>
</tr>
}
</tbody>
</table>
Edit:
db.Configuration.ValidateOnSaveEnabled = false;
Kurz vor db.SaveChanges(); arbeitete für mich, wenn jemand die gleiche Frage hatte.
'email =" Deaktiviert "' macht keinen Sinn (es ist keine E-Mail-Adresse). Was versuchst du anzugeben, indem du das einstellst? –
Sie aktualisieren die E-Mail zu ungültigen E-Mail-Adresse, können Sie nicht überschreiben – Jaffal
ihre eigentliche E-Mail = E-Mail + "| Deaktiviert", und es für Admin, um die deaktivierten Benutzer in Benutzern zu sehen pannel –