无法使用实体框架工作代码第一技术保存数据

时间:2017-10-25 22:28:18

标签: c# entity-framework ef-code-first code-first

我无法使用代码优先技术保存数据。 这是我的背景:

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:

1 个答案:

答案 0 :(得分:0)

就像错误一样。

  

“因为Dependent Role属性不是关键属性,所以   依赖角色的多重性的上限必须是'*'“

“依赖角色属性”在这里表示,例如Agency.UserId,“多样性必须为'*'”表示用户必须拥有一组代理商。 EG

public virtual ICollection<Agency> Agencies { get; } = new HashSet<Agency>();