1

コードファーストメソッドでEntityFrameworkを使用して、最終日(DateAdded)プロパティのデフォルト値を設定しようとしています。これが私のコードです:

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; }

    }
}
4

3 に答える 3

4

コンストラクターで設定できます。

public class UserProfile()
{
   DateAdded = DateTime.Now;
}
于 2012-09-01T09:46:06.287 に答える
1

私はこれを次のリンクのように処理していました:

デフォルト値の設定

基本的にリフレクションで「ファクトリー」を使用します。

于 2012-09-01T09:58:43.310 に答える
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);
    }
于 2012-09-27T00:01:21.183 に答える