2017-05-08 11 views
0

私のモデルにはマッピングされていないプロパティが1つありますが、モデルのメンデントはユーザーからの入力として取得しています。 model(table)私はこのプロパティの例外を受け取り、nullにすることはできません。エンティティフレームワークでマップされていないプロパティを持つモデルを更新する

[NotMapped] 
[Required(ErrorMessage = "Please Enter UserName")] 
public string UserName { get; set; } 

私のコードは、私はいくつかのフィールドを更新するとき、私はので、私がすべきとは思わない価値を持つユーザ名を、割り当てています。このユーザー名の値は何にも影響しませんが、変更しない方法があれば興味があります。上記のコードで

Orders order; 
order = db.Orders.FirstOrDefault(o => o.ID.CompareTo(model.OrderID) == 0); 
     if (order == null) 
      { 
      throw new Exception(Resources.WrongOrderID); 
      } 
    else 
      { 
      order.Order_Status = 1; 
      order.Close_Order_User_ID = cmuser.ID; 
      var dateQuery = db.Database.SqlQuery<DateTime>("SELECT NOW()"); 
      DateTime serverDate = dateQuery.AsEnumerable().First(); 

      order.Close_Order_Date = serverDate; 
      order.UserName = cmuser.USER_NAME; 
      db.Entry(order).State = EntityState.Modified; 

      //db.Entry(order).Property(o => o.UserName).IsModified = false; 

      db.SaveChanges(); 

      return Ok(Resources.OrderClosed); 

    } 

は1つのコメント行は、私はこれを試みたが、それはの例外を与える存在であること

は私がしなければならないの「モデルに属していけないプロパティに使用することはできません変更されました」次の機能チェックに何かを追加してください:

[Route("CloseOrder")] 
public IHttpActionResult CloseOrder([something over here??]CloseOrderBinding model) 

お願いします。

答えて

0

私が正しく理解していればあなたはこの必要があります:はい

public IHttpActionResult CloseOrder([[Bind(Exclude = "UserName")]CloseOrderBinding model) 

ViewData.ModelState.Remove("UserName"); 
+0

を、それはまだ検証が1つのまたは複数のエンティティのために失敗した 'エラーが発生します。詳細は、「EntityValidationErrors」プロパティを参照してください。私はこのように追加しました 'public IHttpActionResult CloseOrder([System.Web.Mvc.Bind(Exclude =" UserName ")] CloseOrderBindingモデル)' –

+0

このViewData.ModelState.Remove( "UserName")を追加してください – User3250

+0

ViewDataはその名前空間の一部ですまたは参照。それはこの文脈の一部ではないと言います。 –

関連する問題