2012-09-01 46 views
1

我想使用代碼優先方法使用實體框架爲最後日期(DateAdded)屬性設置默認值。這裏是我的代碼:如何使用代碼第一個實體框架設置默認日期

public class UserProfile() 
{ 
    DateAdded = DateTime.Now; 
} 
+0

檢查[這個答案](http://stackoverflow.com/questions/7641552/overriding-savechanges-and-setting-modifieddate-but如何做,我設置修改/ 7642041#7642041) – Eranga

+0

看到這個http://stackoverflow.com/questions/3137738/how-to-set-default-value-for-pocos-in-ef-cf – Andy

回答

1

我來處理這就像在TE以下鏈接:

setting default values

基本上都採用

namespace BackOffice.Models 
{ 
    public class UsersContext : DbContext 
    { 
     public UsersContext() 
      //: base("DefaultConnection") 
      : base("ProofPixDB") 
     { 
     } 

     public DbSet<UserProfile> UserProfiles { get; set; } 
    } 

    [Table("UserProfile")] 
    public class UserProfile 
    { 
     [Key] 
     [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
     public int UserId { get; set; } 
     public string UserName { get; set; } 


     //public DateTime DOB { get; set; } 
     [DataType(DataType.Date)] 
     public DateTime? DOB { get; set; } //This allows null 

     [Required] 
     [DataType(DataType.Date)] 
     public DateTime DateAdded { get; set; } 

    } 
} 
+0

這看起來很有希望,但是當我閱讀你的博客文章時,我不確定我會在哪裏實際調用你的函數。你有我可以審查的樣本嗎? –

+0

好吧,例如,您需要任何類型的新實例:UserProfil up = EntityTools.GetNewEntity ();將產生一個新的UserProfil初始化實例。 – tschmit007

+0

非常感謝!抱歉耽擱了。我最終在回發控制器中添加了這個功能。 –

4

你可以在構造函數中設置它帶反射的「工廠」。

0

我結束了在回傳設置此,像這樣:

// POST: /Account/Register 

    [HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public ActionResult Register(RegisterModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      // Attempt to register the user 
      try 
      { 
       DateTime rightNow = DateTime.Now; 

       //WebSecurity.CreateUserAndAccount(model.UserName, model.Password); //too limited used CreateUserAndAccount method below 
       var extendedUserProperties = new { SubscriberId = subscriber.SubscriberId, Email = model.Email, DateAdded = rightNow }; 
       WebSecurity.CreateUserAndAccount(model.UserName, model.Password, extendedUserProperties); 
       Roles.AddUserToRole(model.UserName, Request.Form["RoleName"]); 
       WebSecurity.Login(model.UserName, model.Password); 

       return RedirectToAction("Index", "Home"); 
      } 
      catch (MembershipCreateUserException e) 
      { 
       ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 
相關問題