【问题标题】:如何在 EF 6.4.4 中添加单向一对多关系?
【发布时间】:2022-01-23 01:11:03
【问题描述】:

我有 2 节课:

public class Client
{
    public int Id { get; set; }
}
public class ClientRequest
{
    public int Id { get; set; }
    public int ClientId { get; set; }
    public virtual Client Client { get; set; }
}

我不能以任何方式修改Client 类(它是外部的);我想在这两个模型之间配置单向一对多关系。所以Client 1 ← * ClientRequest 我只能从ClientRequest 导航到Client。我该怎么做?

在 EFCore 中我会这样做:

entity.HasOne(e => e.Client)
      .WithMany()
      .HasForeignKey(e => e.ClientId)
      .OnDelete(DeleteBehavior.ClientSetNull);

但我在 EF 6.4.4 中没有这些方法。

会不会这么简单:

modelBuilder?.Entity<ClientRequest>()
                     .HasRequired(e => e.Client);

【问题讨论】:

    标签: .net entity-framework entity-framework-6


    【解决方案1】:

    在 EF 6.4.4 中配置如下关系:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<ClientRequest>()
                .HasRequired(x => x.Client)
                .WithMany()
                .HasForeignKey(x => x.ClientId)
                .WillCascadeOnDelete(false);
    
                
            base.OnModelCreating(modelBuilder);
        }
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 1970-01-01
      • 2015-07-23
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 2014-03-17
      • 2021-11-18
      相关资源
      最近更新 更多