实体框架一对一流畅 API 无法删除数据

本文关键字:删除 数据 API 框架 一对一 实体 | 更新日期: 2023-09-27 18:34:09

这是模型中的礼物类。这应该是父类。

public class Gift
    {
        public int GiftId { get; set; }           
        public string Title { get; set; }
        public string Brand { get; set; }
        public double Price { get; set; }
        public bool Chosen { get; set; }   
        public virtual Shop Shop { get; set; }    
        public virtual Person Person { get; set; }        
    }

这就是商店类,这两者有一对一的关系。礼品有店,店也该有礼品。

public class Shop
    {
        public int ShopId { get; set; }
        public string Name { get; set; }
        public string Street { get; set; }
        public string Number { get; set; }
        public string Postcode { get; set; }
        public string District { get; set; }  
        public virtual Gift Gift { get; set; }
    }

这是我模型中的第三类。此类与礼品类的关系为 1 到零。如果没有选择礼物,它就没有任何人。对这个人也一样。

 public class Person
{
    public int Id { get; set; }
    public string FirstName{ get; set; }
    public string Surname{ get; set; }
    public string EmailAdress { get; set; }
    public virtual Gift Gift { get; set; }
}

这是我多次更改的流畅 api。

modelBuilder.Entity<Gift>()
                .HasOptional(x => x.Person);
            modelBuilder.Entity<Person>()
                .HasRequired(x => x.Gift);
            modelBuilder.Entity<Gift>()
            .HasRequired(x => x.Shop).WithOptional(x => x.Gift).Map(x => x.MapKey("ShopId"));
            modelBuilder.Entity<Shop>()
               .HasRequired(x => x.Gift).WithOptional(x => x.Shop).Map(x => x.MapKey("GiftId"));

我可以保存数据,但是当我想删除礼物时,我无法成功并且遇到问题。我该如何解决这个问题?已经谢谢了!

实体框架一对一流畅 API 无法删除数据

我已经修复了它。这是链接

modelBuilder.Entity<Shop>()
                .HasRequired(x => x.Gift)
                .WithRequiredDependent();
            modelBuilder.Entity<Gift>()
                .HasRequired(x => x.Shop)
                .WithRequiredPrincipal();
            base.OnModelCreating(modelBuilder);