顧客の電子メールと電話番号を暗号化された文字列としてデータベースに保存しようとしています。明らかに、有効な電子メールアドレスや電話番号ではなく、Entityフレームワークの検証に失敗します。フィールドの検証を妥協することなくこの状況を処理する最善の方法は何でしょうか? Googleに試してみましたが、どこにも行きません。電子メールと電話番号を暗号化された文字列として保存する
モデルクラスのフィールド:
[Required]
[StringLength(256)]
[EmailAddress]
public string Email { get; set; }
[StringLength(256)]
public string Address { get; set; }
[Required]
[Phone]
[Display(Name = "Phone")]
public string PhoneNumber { get; set; }
コントローラのアクションメソッド:出力ウィンドウに
if (ModelState.IsValid)
{
try
{
customer.CustomerCode = getNewCode();
customer.PhoneNumber = CryptorEngine.Encrypt(customer.PhoneNumber, true);
customer.Email = CryptorEngine.Encrypt(customer.Email, true);
customer.Address = CryptorEngine.Encrypt(customer.Address, true);
customer.AddedBy = User.Identity.Name;
customer.AddedAt = DateTime.Now;
db.Customers.Add(customer);
db.SaveChanges();
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
System.Diagnostics.Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
System.Diagnostics.Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
return RedirectToAction("Index");
}
エラー:すべてのヘルプは高く評価されるだろう
Exception thrown:
'System.Data.Entity.Validation.DbEntityValidationException' in EntityFramework.dll
Entity of type "Customer" in state "Added" has the following validation errors:
- Property: "Email", Error: "The Email field is not a valid e-mail address."
- Property: "PhoneNumber", Error: "The Phone field is not a valid phone number."
。
[電話番号]と[EmailAddress]を削除してください –
ありがとう、属性をビューモデルに移動します – Faisal