entity framework代码第一个CTP4默认列值?
我一直在寻找使用Entity Framework CTP4的Code First,您可以使用ModelBuilder来构建表列。 有没有办法使用ModelBuilder或其他一些机制为数据库中的列设置默认值?
谢谢!
无法通过文本编辑器/应用程序找到添加默认值而非手动编辑的方法这是entity framework中的错误…
我正在使用构造函数来设置默认值。 从未失败过我
public class Activity { [Required] public DateTime AddedDate { get; set; } public Activity() { AddedDate = DateTime.Now; } }
在为迁移生成的代码中,您可以为列指定默认值:
AddColumn("users", "ReceiveSummaryEmail", c => c.Boolean(nullable: false, defaultValue: true));
这是我的方式,通过构造函数在创建方法中使用private setters
设置重要属性
模型
public class User { public static User Create(Action init) { var user = new User(); user.Guid = Guid.NewGuid(); user.Since = DateTime.Now; init(user); return user; } public int UserID { get; set; } public virtual ICollection Roles { get; set; } public virtual ICollection Widgets { get; set; } [StringLength(50), Required] public string Name { get; set; } [EmailAddress, Required] public string Email { get; set; } [StringLength(255), Required] public string Password { get; set; } [StringLength(16), Required] public string Salt { get; set; } public DateTime Since { get; private set; } public Guid Guid { get; private set; } }
创建新用户
context.Users.Add(User.Create(c=> { c.Name = "User"; c.Email = "some@one.com"; c.Salt = salt; c.Password = "mypass"; c.Roles = new List { adminRole, userRole }; }));