Đây là cách của tôi, thiết lập các thuộc quan trọng với private setters
trong một phương pháp sáng tạo thay vì thông qua các nhà xây dựng
Mẫu
public class User
{
public static User Create(Action<User> 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<Role> Roles { get; set; }
public virtual ICollection<Widget> 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; }
}
Tạo người dùng mới
context.Users.Add(User.Create(c=>
{
c.Name = "User";
c.Email = "[email protected]";
c.Salt = salt;
c.Password = "mypass";
c.Roles = new List<Role> { adminRole, userRole };
}));
[gợi ý liên quan] (https://data.uservoice.com/forums/72025-entity-framework-feature - đề xuất/đề xuất/2929682-hỗ trợ-cơ sở dữ liệu-giá trị mặc định-trong-mã-đầu tiên). – tne