我有两个表,一对一映射。但共享主键名称应该不同。
以下是表格
public class User
{
public Guid Id { get; set; }
public Guid LicenseGuid { get; set; }
public string UserID { get; set; }
public int Sequence { get; set; }
public UserLogin UserLogin { get; set; }
}
共享主键其他表将是
public class UserLogin
{
public Guid UserId { get; set; }
public User User { get; set; }
}
现在如何使用Id创建共享主键 - > Entityframework 6中的UserId 我试过这个
builder.Entity<UserLogin>()
.HasRequired(x => x.User).WithRequiredDependent();
但它不仅会创建UserId
作为共享密钥,还会在User_id
表上创建UserLogins
,这是不受欢迎的。如何只有一个UserId作为共享主键,表User
的主要共享密钥与表Id
表上的UserId
和UserLogin
共享密钥相同。
答案 0 :(得分:0)
我认为代码可以解决您的问题
public class User{
public Guid Id { get; set; }
public Guid LicenseGuid { get; set; }
public string UserID { get; set; }
public int Sequence { get; set; }
[ForeignKey("Id")]
public UserLogin UserLogin { get; set; }
}
public class UserLogin
{
public Guid UserId { get; set; }
[ForeignKey("UserId ")]
public User User { get; set; }
}
但我认为你可以这样做
public class User{
public Guid Id { get; set; }
public Guid LicenseGuid { get; set; }
public string UserID { get; set; }
public int Sequence { get; set; }
}
public class UserLogin:User{
// other property
}