我无法使用代码优先技术保存数据。 这是我的背景:
private String getCallerClassName() {
StackTraceElement[] stElements = Thread.currentThread().getStackTrace();
for (int i = 1; i < stElements.length; i++) {
StackTraceElement ste = stElements[i];
if (!ste.getClassName().equals(B.class.getName()) && ste.getClassName().indexOf("java.lang.Thread") != 0)
return ste.getClassName();
}
return null;
}
我的用户模型在这里:
public virtual DbSet<Users> User { get; set; }
public virtual DbSet<Agency> Agencies { get; set; }
public virtual DbSet<ColdStorage> ColdStorages { get; set; }
public virtual DbSet<ShowRoom> ShowRooms { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
我的另一个模特在这里:
[Table("Users")]
public class Users
{
[Key]
public int UserId { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string Mobile { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public bool isAgency { get; set; }
public bool isColdStorage { get; set; }
public string VerificationCode { get; set; }
public DateTime CreatedDate { get; set; }
// Reverse navigation
public virtual Agency Agency { get; set; }
public virtual ColdStorage ColdStorage { get; set; }
public virtual ShowRoom ShowRoom { get; set; }
public Users()
{
Agency = new Agency();
ColdStorage = new ColdStorage();
ShowRoom = new ShowRoom();
}
}
错误在于:
消息&#34;:&#34;发生了错误。&#34;,&#34; ExceptionMessage&#34;:&#34;在模型生成期间检测到一个或多个验证错误:\ r \ n \ r \ nColdStorage_Users_Source :: Multiplicity在Role&#39; ColdStorage_Users_Source&#39;中无效。在关系&#39; ColdStorage_Users&#39;。由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为&#39; *&#39;。\ r \ nShowRoom_Users_Source:
答案 0 :(得分:0)
就像错误一样。
“因为Dependent Role属性不是关键属性,所以 依赖角色的多重性的上限必须是'*'“
“依赖角色属性”在这里表示,例如Agency.UserId,“多样性必须为'*'”表示用户必须拥有一组代理商。 EG
public virtual ICollection<Agency> Agencies { get; } = new HashSet<Agency>();