Недопустимый атрибут ForeignKeyAttribute для свойства "[Имя модели]" для типа "[Имя проекта]" - PullRequest
1 голос
/ 17 февраля 2020

Итак, я попытался добавить внешний ключ, следуя этому учебнику. Но теперь я получаю ошибку, я искал ответ, но не мог найти ни одного. это мои классы моделей

Мов ie класс

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace MovieExampleAppDotNetCore.Models
{
    [Table("Movie")]
    public class Movie
    {   
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int MovieId { get; set; }
        public string Name { get; set; }

        [Column(TypeName = "datetime2")]
        public DateTime? DateCreated { get; set; }

        public int? CustomerId { get; set; }
        [ForeignKey("Customer")]
        public Customer customer { get; set; }
    }
}

Класс клиентов

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace MovieExampleAppDotNetCore.Models
{
    [Table("Customer")]
    public class Customer
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int CustomerId { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public bool IsCreated { get; set; }
        public int MaxMovies { get; set; }

        [Column(TypeName = "datetime2")]
        public DateTime Created { get; set; }

        [Column(TypeName = "datetime2")]
        public DateTime? LastEdited { get; set; }

        public ICollection<Movie> BorrowingMovies { get; set; }
    }
}

Я надеюсь, что кто-то может помочь мне с моей проблемой.

1 Ответ

1 голос
/ 17 февраля 2020

У вас должно быть имя свойства с pascal-case:

public Customer Customer { get; set; }

Также в этом случае нет необходимости использовать аннотацию данных. Кроме того, типы CustomerId отличаются в Movie и Customer. Это не может быть обнуляемым в Movie. Ваш внешний ключ должен быть определен так:

public int CustomerId { get; set; }
...