В ссылочной таблице «x» нет первичных, соответствующих внешнему ключу столбца «.y». - PullRequest
0 голосов
/ 19 сентября 2018

В ссылочной таблице «dbo.Client_Master» нет первичных ключей или ключей-кандидатов, которые соответствуют списку ссылочных столбцов во внешнем ключе «FK_dbo.Client_Question_Master_dbo.Client_Master_client_id».Не удалось создать ограничение или индекс.См. Предыдущие ошибки.

Моя модель Client_Master

 public class Client_Master
{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Client_Id { get; set; }
    public string Client_Name { get; set; }        
    public string Client_Address { get; set; }
    public string Client_Email { get; set; }
    public string Client_Phone { get; set; }
    [DefaultValue(" ")]
    public string Client_Country { get; set; }
    [DefaultValue(" ")]
    public string Client_State { get; set; }

    [DefaultValue(" ")]
    public string Client_Postcode { get; set; }        
    public bool Is_Active { get; set; }
    public long? Created_By { get; set; }
    public DateTime? Created_Date { get; set; }

    [ForeignKey("Business_Master")]
    public long? Business_Id { get; set; }

    [ForeignKey("Categories")]
    public long? Category_Id { get; set; }

    public virtual Categories Categories { get; set; }

    public virtual Business_Master Business_Master { get; set; }

    [JsonIgnore]
    public virtual ICollection<Client_Question_Master> Client_Question_Master { get; set; }



}

И Мой Client_Question_Master Modal

 public class Client_Question_Master
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long client_question_master_id { get; set; }

    [ForeignKey("Client_Master")]
    public long? client_id { get; set; }

    public virtual Client_Master Client_Master { get; set; }

    [ForeignKey("Question_Types")]
    public long? question_type_id { get; set; }

    public virtual Question_Types Question_Types { get; set; }

    public string question { get; set; }

    public long order_no { get; set; }

    public bool isContribute { get; set; } = true;

    [ForeignKey("Section_Master")]
    public long? section_id { get; set; }

    public virtual Section_Master Section_Master { get; set; }

    public double amount { get; set; }

    public bool isActive { get; set; } = true;

    public bool isRequired { get; set; } = true;

    public bool isComment { get; set; } = true;

    public string values { get; set; } 

    public bool isRevenue { get; set; }

    public bool isStaff { get; set; }

    public bool isMarketing { get; set; }

    public DateTime created_date { get; set; } = DateTime.Now;


}

После добавления миграции во время обновления базы данных выдает ошибку.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Проверьте ваш файл edmx. У EDMX может не быть этого столбца в качестве Первичного ключа в другой таблице, которую вы используете в качестве внешнего ключа.

0 голосов
/ 19 сентября 2018

Использование атрибута ForeignKey неправильно при использовании внешнего ключа, допускающего обнуление.

Например, вы используете:

[ForeignKey("Client_Master")]
public long? client_id { get; set; }

public virtual Client_Master Client_Master { get; set; }

Однако это должно быть:

public long? client_id { get; set; }

[ForeignKey("client_id")]
public virtual Client_Master Client_Master { get; set; }

Вы сообщаете EntityFramework, какое свойство является внешним ключом.Это препятствует созданию поля, имеющего тот же тип данных, что и первичный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...