Pregunta

I have a model with a property called "datetime_inclusion" and I need to set a value for this ONLY when I save the first time, there is a way to do this treatment in the model? I use C# MVC5 and entity framework 5

¿Fue útil?

Solución

When you save the first time your object won't have an ID until it gets put into the DB. You can check against this to set your value.

if(myEntity.ObjectID <= 0)
{
    myEntity.DateAdded = DateTime.Now;
}

Otros consejos

Shoe's answer is perfect. But if you are worry that property can be change in edit time, control that. In create action use Shoe's code and in Edit action use:

[HttpPost] 
public ActionResult Edit(int id, Model model) 
{ 
     using (var db = new YourEntities()) 
     { 
         //control that, it does not change
         model.datetime_inclusion = db.YourTable.Find(id).datetime_inclusion;

         db.Entry(model).State = System.Data.EntityState.Modified; 
         db.SaveChanges(); 
         return RedirectToAction("Index"); 
     } 
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top