Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 忽略在级联删除时删除特定实体_C#_Entity Framework Core - Fatal编程技术网

C# 忽略在级联删除时删除特定实体

C# 忽略在级联删除时删除特定实体,c#,entity-framework-core,C#,Entity Framework Core,我拥有以下实体: public class ShoppingCartItem { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int ShoppingCartItemId { get; set; } public virtual Product Product { get; set; } public int Quantity { get; set; }

我拥有以下实体:

public class ShoppingCartItem
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ShoppingCartItemId { get; set; }
    public virtual Product Product { get; set; }    
    public int Quantity { get; set; }
    public string ShoppingCartId { get; set; }
    public DateTime ItemAddedToCart { get; set; } 
}
产品
ShoppingCartItem
之间存在一对一的外键关系。
我的问题是,如何使entity framework core跳过删除
产品上的
ShoppingCartItem
实体
级联删除?

您可以在构建器对象中使用以下内容

builder.Entity<ShoppingCartItem>()
    .HasOne(s => s.Product)
    .WithOne(p => p.ShoppingCartItem)
    .Metadata.DeleteBehavior = DeleteBehavior.Restrict;
builder.Entity()
.HasOne(s=>s.Product)
.WithOne(p=>p.ShoppingCartItem)
.Metadata.DeleteBehavior=DeleteBehavior.Restrict;

我在您的答案中使用了一个(p=>p.ShoppingCartItem)
尝试了这个方法,但是在
产品
实体中没有来自
ShoppingCartItem
的参考。只有在
ShoppingCartItem
实体中引用
产品
实体的另一种方式。是否应在
产品
实体中引用
ShoppingCartItem
。。?对我来说,这感觉没有必要..也许我应该删除
产品
实体引用,在
购物车项目
实体中使用
公共int ProductId
。这不是一对一关系吗?试着完全删除WithOne。以下文档说明您需要声明从一个实体到另一个实体的引用:我认为应该只需要定义从“父”到“子”的foreignkey关系,而不需要定义从“子”到“父”的foreignkey关系。一对一应该有双方的参考