开发者

EF 4.1 CF Fluent API mapping problemo

开发者 https://www.devze.com 2023-03-15 12:30 出处:网络
I\'m new to the fluent API. I have a legacy database which I can\'t alter at the moment. Simply, this is what I need to achieve:

I'm new to the fluent API. I have a legacy database which I can't alter at the moment. Simply, this is what I need to achieve:

public class ItemCategory
{
    public int ID { get; set; }
    public string Name {开发者_C百科 get; set; }
    public virtual ICollection<Item> Items { get; set; }
}

public class Item
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<ItemCategory> ItemCategories { get; set; }
    public virtual ICollection<Item> RelatedItems { get; set; }

}

Items can be in many categories, RelatedItems can be in different categories to the current Item (which may not have any related items), the existing join tables look like this:

ItemCategoriesItems (ID,ItemCategoryID,ItemID)
RelatedItemCategoriesItems (ID,ItemCategoriesItemsID,RelatedItemCategoriesItemsID)

Hopefully it's obvious that the related items join table above contains 2 foreign keys to the item categories join table - one pointing to the current item and the other to the related item. Currently my onModelCreating code has:

modelBuilder.Entity<ItemCategory>()
    .HasMany(c => c.Items)
    .WithMany(set => set.ItemCategories)
    .Map(mc =>
    {
        mc.ToTable("ItemCategoriesItems","testdb");
        mc.MapLeftKey("ItemCategoryID");
        mc.MapRightKey("ItemID");
    });

... which gets the categories/items working but I'm stuck on how to get the RelatedItems.

Any help greatly appreciated!

0

精彩评论

暂无评论...
验证码 换一张
取 消