Kgn*_*web 3 c# entity-framework asp.net-core ef-core-2.1
我为我的DAL使用EF Core 2.1。这就是我的模型的样子
一个用户只能拥有一个角色:
// Role entity - kind of master
public class Role
{
public int RoleId { get; set; }
public string RoleName { get; set; }
}
// User entity - every user will have one role
public class User
{
public int UserId { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public int RoleId { get; set; }
public bool IsActive { get; set; }
public DateTime CreatedOn { get; set; }
public virtual Role Role { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这就是我想/试图定义这两个实体之间的关系的方式:
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasKey(x => x.UserId);
builder.Property(x => x.RoleId).IsRequired(true);
builder.Property(x => x.CreatedOn).IsRequired(true).HasDefaultValue(DateTime.Now);
// FK - throwing compile time error
builder.HasOne(x => x.Role).WithOne(y => y.RoleId);
}
Run Code Online (Sandbox Code Playgroud)
如何使用EF Fluent API定义此一个用户一个角色关系?
谢谢。
不仅在FK关系配置中,CreatedOn
列的默认值生成配置中还存在问题。因此,如下编写您的实体配置:
public void Configure(EntityTypeBuilder<User> builder)
{
builder.HasKey(u => u.UserId);
builder.Property(u => u.CreatedOn).IsRequired(true).HasDefaultValueSql("getdate()");
// FK - configuraiton
builder.HasOne(u => u.Role).WithMany().HasForeignKey(u => u.RoleId).IsRequired(true);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2416 次 |
最近记录: |