2

私は2つのクラスを持っています(簡潔にするために要約されています):

public class Product : Entity<Guid>
{      
    ...    
    public virtual IList<Ingredient> Ingredients { get; set; }          
    public Product(){Ingredients = new List<Ingredient>();}    
}

public partial class Ingredient : Entity<int>
{
    ...
    public virtual IList<Product> Products { get; set; }
    public Ingredient(){Products = new List<Product>();}
}

彼らは多対多の関係を持っています、そして私はしたいです:

  • 1つの材料を削除すると、その製品は削除されず、リストの材料のみが削除されます。
  • 1つの商品を削除すると、材料はすべて削除されずに残ります。

このマップを作成しましたが、これを機能させることができません。

orm.ManyToMany<Product, Ingredient>();
orm.Cascade<Product, Ingredient>(CascadeOn.DeleteOrphans);
4

1 に答える 1

1

ついにできた。これは、誰かをさらに助ける場合に備えて、これを解決できる方法です。

        orm = new ObjectRelationalMapper();
        mapper = new Mapper(orm);
        //...

        mapper.Class<Ingredient>(c =>
        {
           /* ...[MAP OTHERS PROPERTY]...*/
           // Many to many relationship in One side
            c.Bag(p => p.Products, pm => pm.Inverse(false), rel => rel.ManyToMany());
        });

       // Many to many relationship in other side
       orm.ManyToMany<Product, Ingredient>();
于 2011-11-03T22:34:06.823 に答える