C# 一对一关系实体框架出错
我有两节课 推车 但当我尝试时,我犯了错误 类型“Shop.Models.Cart”上属性“Customer”的ForeignKeyAttribute无效。在依赖类型“Shop.Models.Customer”上未找到外键名称“CustomerId”。名称值应为以逗号分隔的外键属性名称列表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上的
不能让两个实体中的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; }
}
}