我正在努力将数据库优先项目转换为代码优先。
我有以下课程,我正在使用EF Core 2.0:
public class WorkUser
{
public int WorkUserId { get; set; }
public int UserId { get; set; }
}
我尝试了以下操作,但不确定它是否正确。
public class WorkUser
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int WorkUserId { get; set; }
[Key]
public int UserId { get; set; }
}
我希望WorkUserId
作为自动增量属性,UserId
作为主键。 UserId
值来自另一个表。所以希望这是主键,但没有自动增量。
如何实现这一目标?
答案 0 :(得分:1)
以下按预期工作:
public class WorkUser
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int WorkUserId { get; set; }
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int UserId { get; set; }
}
答案 1 :(得分:1)
尝试一下:
public class SampleContext:DBContext{
public DbSet<WorkUser> WorkUsers{ get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder){
modelBuilder.Entity<WorkUser>()
.Property(p => p.WorkUserId )
.ValueGeneratedOnAdd();
}
}