【问题标题】:Entity Framework: remove a record from a one-to-many relationship实体框架:从一对多关系中删除记录
【发布时间】:2013-10-19 11:34:36
【问题描述】:

这是我的代码:

var stacy = context.People.Add(new People(1, "Stacy", "Bateman", new DateTime(1992, 3, 12)));
var matthew = context.People.Add(new People(1, "Matthew", "Gordon", new DateTime(1992, 3, 12)));
var adam = context.People.Add(new People(1, "Adam", "Herd", new DateTime(1992, 3, 12)));

Ensemble ensemble = new Ensemble();
ensemble.name = "Little River Band";
ensemble.EnsembleMembers = new List<People>();
ensemble.EnsembleMembers.Add(adam);
ensemble.EnsembleMembers.Add(stacy);
context.Ensemble.Add(ensemble);
context.SaveChanges();

您可能知道我有两个表(人员和集合),它们通过一对多关系连接,其中一个集合可以有很多人,但一个人只能是一个集合的一部分。

我的问题是,如果我想从合奏“小河乐队”中删除人员 stacy,我将如何做到这一点,同时仍保留 stacys 的其他信息,例如电话、电子邮件、名字、姓氏。

【问题讨论】:

    标签: c# entity-framework ef-code-first dbcontext


    【解决方案1】:

    您将不得不使用 fluent API 来设置关系,并且我认为将 OnCascadeDelete 设置为 false。

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    
    modelBuilder.Entity<Ensemble>()
    .HasMany(a => a.EnsembleMembers)
    .WithOptional().WillCascadeOnDelete(false);
    }
    

    【讨论】:

    • 我对fluent API不熟悉。你能举个例子说明我会怎么做吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2012-01-10
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多