Unable to determine the principle end of an association

后端 未结 2 960
耶瑟儿~
耶瑟儿~ 2021-01-25 10:59

Using EF5 Code first, I have two classes:

[Table(\"UserProfile\")]
public class UserProfile {

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)         


        
2条回答
  •  一整个雨季
    2021-01-25 11:40

    The trick with 1:1 in EF is the dependant table MUST have the same primary key. The Primary tables has the DB generated ID. The dependant uses DatabaseGeneratedOption.None !

    so the fluentAPI for the dependant table

     {
      // map for Dependant
      // Relationship
            this.HasKey(t => t.Id);
            // Properties
            //Id is an int allocated by DB but controller via Primary here
            this.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); // from parent
            entity.HasRequired(t => t.NAV_PROP_TO_PRIMARY)
                  .WithOptional(t => t.NAV_PROP_DEPENDANT) // if it is declared. NOT required.
                  .WillCascadeOnDelete(true);   // as appropriate
     }   
    
     {
         //map for Primary
         // Primary Key
         this.HasKey(t => t.Id);
    
         // Properties
         //Id is an int allocated by DB
        this.Property(t => t.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); // default to db generated
    
     }
    
    
    public class Dependant{ 
       public  virtual int Id { set; get; }
       //... other props
       public virtual Primary Primary {get; set;}   // nav to primary
    } 
    
    public class Primary{ 
       public  virtual int Id { set; get; }
    
    } 
    

提交回复
热议问题