2

コンピュータを削除したときに削除時にカスケードを発生させる方法はありますか? 基本的に、コンピューターを削除すると、インスタンスと、環境と製品を除くすべての参照が削除されます。

コンピュータエンティティ:

public class Computer
{
    [Key]
    public int Id { get; set; }

    public string IpAddress { get; set; }

    public string Name { get; set; }

    public string UserFriendlyName { get; set; }

    public string Description { get; set; }
}

インスタンス エンティティ:

    public class Instance
{
    public Instance()
    {
        TestResults = new HashSet<TestResult>();
        Environments = new HashSet<Environment>();
    }

    [Key]
    public int Id { get; set; }

    public string Name { get; set; }

    public string Version { get; set; }

    public string UserFriendlyName { get; set; }

    public virtual Product Product { get; set; }

    public virtual Profile LastKnownProfile { get; set; }

    public virtual Computer Computer { get; set; }

    public virtual ICollection<TestResult> TestResults { get; set; }

    public virtual ICollection<Environment> Environments { get; set; } 
}
4

2 に答える 2

2

Fluent API を使用して関係を定義する必要があります。次のようなものを使用します。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  modelBuilder.Entity<Computer>()
                .HasRequired(x => x.Instance)
                .WithRequiredPrincipal(x => x.Computer)
                .WillCascadeOnDelete();

  modelBuilder.Entity<Instance>()
                .HasRequired(x => x.LastKnownProfile)
                .WithRequiredPrincipal(x => x.Instance)
                .WillCascadeOnDelete();

  modelBuilder.Entity<Instance>()
                .HasMany(x => x.TestResults)
                .WithOptional(x => x.Instance)
                .WillCascadeOnDelete();
}

これは、MSDN でかなりよく文書化されています:流暢な API との関係の構成

于 2013-02-10T05:30:25.230 に答える
0

多対多の関係を確認します。州のカスケード削除をオフにし、関連するレコードを手動で削除しています

于 2013-02-08T14:20:11.677 に答える