0

私は最初にエンティティ フレームワーク コードを初めて使用するので、次の質問をしたいと思います: 私はこのエンティティを持っています:

public class ConfigurationSetEntity
{
   public virtual List<IsapreEntity> Isapres { get; set; }
   [Key]
   [DatabaseGenerated(DatabaseGeneratedOption.None)]
   public virtual string Culture { get; set; }
}

そしてこれも:

public class IsapreEntity
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [Required]
    public virtual string IsapreName { get; set; }

    [ForeignKey("IsapreOf")]
    [Required]
    public virtual string CultureId { get; set; }

    public virtual ConfigurationSetEntity IsapreOf { get; set; }
}

ConfigurationSetEntity.Isapres.Remove(entity) を使用すると、DbEntityValidationException が発生します。これは削除のコードです。

IsapreModel original = this.ChangeSet.GetOriginal(currentIsapre);
ConfigurationSetEntity defaultConfigSet = dbContext.ConfigurationSets.Find(Constants.DefaultConfigurationSetId);
IsapreEntity originalEntity =defaultConfigSet.Isapres.Find(e => e.IsapreName==original.Isapre);
defaultConfigSet.Isapres.Remove(originalEntity);

try
{
    dbContext.SaveChanges();
}
catch (Exception ex)
{
  //This is where I catch the exception
}
defaultConfigSet.Isapres.Add(new IsapreEntity { IsapreName = currentIsapre.Isapre });
try
{
    dbContext.SaveChanges();
}
catch (Exception ex)
{
}    

そして、これは例外です:

"The IsapreOf field is required."

私がやりたいことは、テーブルとリストからConfigurationSetEntity.Isapres.Remove(entity)エンティティを使用して削除することです。IsapreEntitiesなぜエラーが発生したのか、意図した目的をどのように達成できるのかを説明してもらえますか?

4

0 に答える 0