2013-04-22 2 views
1

У меня есть модель League, а таблица соответствия SQL Server имеет столбец DateCreated, который использует значение по умолчанию для SQL getdate().ASP.NET MVC 4 пустое свойство в Создать действие перезаписывает значение по умолчанию по умолчанию SQL

Когда я добавляю новый League, то DateCreated столбец будет записан со значением null, который я предполагаю, что это результат EF перезапись функции SQL getdate(). Есть ли способ заставить EF игнорировать этот столбец при добавлении новой строки? Вот мое создать действие:

[HttpPost] 
    public ActionResult Create(LeagueCreateViewModel lcv) 
    { 
     League league = new League(); 
     league.Title = lcv.Title; 
     league.SiteId = lcv.SiteId; 

     if (ModelState.IsValid) 
     { 
      db.Leagues.Add(league); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     ViewBag.SiteId = new SelectList(db.Sites, "Id", "Title", league.SiteId); 
     return View(lcv); 
    } 
+0

Что произойдет, если вы измените DateCreatedColumn, чтобы не допускать нулевые значения? – Richard

ответ

1

Если вы используете EF 4.1, то это не поддерживается, и вы должны быть четко об этом - заботиться о том, что в коде. То, что вы делаете, создает частичный класс для вашего объекта и выполняет «дефолт» в конструкторе объекта.

public partial class League { 
    public League() { 
     DateCreated = DateTime.Now; 
     // or DateTime.UtcNow, depends on your logic 
    } 
} 
+0

ОК спасибо, я попробую. Еще одна вещь - в действии [HttpPost] Edit, я не хочу, чтобы это свойство было установлено или обновлено вообще, так что бы я сделал в этой ситуации? – jk105

+0

В EF 4.1, если вы не установите это значение, которое не будет обновляться. –

Смежные вопросы