を削除し、私はテーブルを表す以下のクラスがあります。を挿入し、複雑な構造に
public class PriceDefinition
{
public virtual long Id{get;set;}
public virtual IList<Rule> Rules{get; set;}
public virtual IList<PriceDefinitionAddition> Additions{get; set;}
public virtual IList<CustomerPrice> CustomersPrices { get; set; }
public PriceDefinition() { }
}
public class Rule
{
public virtual long PriceDefinitionId { get; set; }
public virtual string FieldName { get; set; }
public virtual string Values { get; set; }
public virtual string Text { get; set; }
public Rule() { }
}
public class CustomerPrice
{
public virtual long Id { get; set; }
public virtual long CustomerId { get; set; }
public virtual long PriceDefinitionId { get; set; }
public virtual long TaskPriceId { get; set; }
public virtual Price TaskPrice { get; set; }
public virtual IList<CustomerAdditionPrice> AdditionsPrices { get; set; }
public CustomerPrice() { }
}
public class CustomerAdditionPrice
{
public virtual long CustomerPriceId { get; set; }
public virtual long AdditionId { get; set; }
public virtual long PriceId { get; set; }
public virtual Price Price { get; set; }
public CustomerAdditionPrice() { }
}
public class Price
{
public virtual long Id { get; set; }
public virtual decimal PriceSum { get; set; }
public virtual decimal PricePercent { get; set; }
public virtual long? UnitTypeId { get; set; }
public virtual UnitTypeWrapper UnitTypeWrapper { get; set; }
public UnitTypeEnum UnitType { get { return UnitTypeWrapper; } }
public Price() { }
}
public class PriceDefinitionAddition
{
public virtual long PriceDefinitionId { get; set; }
public virtual long AdditionId { get; set; }
public PriceDefinitionAddition() { }
}
私はPriceDefinitionのIDを持っていると私はすべての関連データを削除する必要があります。この複雑な構造全体を反復する必要がありますか?オブジェクト全体をロードするためにオブジェクトをロードするにはどうすればよいですか?この構造をすべて削除する簡単な方法はありますか?
私はPriceDefinitionオブジェクトを持っています。私はすべての関連データを含めて挿入する必要があります。 SaveChangesを呼び出すと、すべてのIDが適切な値を取得する方法で、私はどのようにそれを行うことができますか?すべてを挿入するためにすべての要素を反復処理する必要がありますか?
@Ladislav Mrnka:そう、エンティティを1つずつ削除する必要があります(エンティティの一部はソフト削除です)。どのように構造全体を読み込むことができますか(子オブジェクトと孫オブジェクトのインクルードがあります)。 "LoadAll"などありますか? – Naor
@Naor:いいえ、すべてがロードされていません。構造全体に対してインクルードを手動で指定する必要があります。 –
@Ladislav Mrnka:なぜ、それぞれの削除に対して1回のDB往復を書いていますか? Proceedの最後にSaveChangesを使用することはできませんか? – Naor