C# 一对一关系实体框架出错

C# 一对一关系实体框架出错,c#,entity-framework,one-to-one,C#,Entity Framework,One To One,我有两节课 推车 但当我尝试时,我犯了错误 类型“Shop.Models.Cart”上属性“Customer”的ForeignKeyAttribute无效。在依赖类型“Shop.Models.Customer”上未找到外键名称“CustomerId”。名称值应为以逗号分隔的外键属性名称列表 不能让两个实体中的FK都指向对方-这是一个关系循环。决定哪一个实体是主体,哪一个是从属实体,并将FK仅保留在从属实体中。或者更好地设置Customer实体没有名为CustomeId的属性。Customer上的

我有两节课

推车

但当我尝试时,我犯了错误

类型“Shop.Models.Cart”上属性“Customer”的ForeignKeyAttribute无效。在依赖类型“Shop.Models.Customer”上未找到外键名称“CustomerId”。名称值应为以逗号分隔的外键属性名称列表


不能让两个实体中的FK都指向对方-这是一个关系循环。决定哪一个实体是主体,哪一个是从属实体,并将FK仅保留在从属实体中。或者更好地设置
Customer
实体没有名为
CustomeId
的属性。
Customer
上的主键
ID
应该是
CustomerId
Cart
上的
[ForeignKey(“CustomerId”)]
正在寻找
CustomerId
作为
上的
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Shop.Models
{
    public class Cart
    {
        public Cart()
        {
            this.Items = new HashSet<CartItem>();
        }

        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        [Required]
        public ICollection<CartItem> Items { get; set; }


        public int CustomerId { get; set; }

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

    }
}
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Shop.Models
{

    [Table("OrderCustomerInfo")]
    public partial class Customer
    {

        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        [Required(ErrorMessage = "Нам важно знать как обращаться к вам")]
        [MaxLength(100, ErrorMessage = "Мы сожалеем, но нам сложно обращаться к вам с таким длинным именем")]
        public string AllName { get; set; }

        [EmailAddress]
        public string Email { get; set; }

        [Required(ErrorMessage = "Нам необходим ваш номер телефона для связи с вами")]
        [RegularExpression(@"^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$")]
        public string Phone { get; set; }

        [Required(ErrorMessage = "Нам необходимо знать область и город доставки")]
        [MaxLength(200, ErrorMessage = "Название области и города слишком длинное, возможно вы ввели полный адресс не в то поле")]
        public string City { get; set; }

        [Required(ErrorMessage = "Нам необходимо знать адресс доставки")]
        [MaxLength(200, ErrorMessage = "Адресс слишком длинный, возможно вы ввели название города и области не в то поле")]
        public string Address { get; set; }

        [Required]
        [MaxLength(30)]
        public string DeliveryType { get; set; }

        [StringLength(400, ErrorMessage = "Ваши пожелания слишком длинные, мы свяжемся с вами по телефону как только вы оформите заказ, и учтем ваши пожелания")]
        public string Additional { get; set; }

        [Required]
        [DefaultValue(false)]
        public bool Processed { get; set; }

        [Required]
        [DefaultValue(false)]
        public bool Complete { get; set; } 

        [DefaultValue(false)]
        public bool Hidden { get; set; }

        public DateTime Date { get; set; }

        public User User { get; set; }


        public int CartID { get; set; }

        [Required]
        [ForeignKey("CartID")]
        public virtual Cart Cart { get; set; }
    }
}