Entity Framework One-to-Many with Default

后端 未结 1 680
执笔经年
执笔经年 2020-12-20 01:13

I\'m trying to do a one-to-many relationship in Entity Framework where one of the many items is optionally designated as default.

public class SomeEntity
{
          


        
相关标签:
1条回答
  • 2020-12-20 01:39

    That is a bit untypical 'setup' (and it's usually designated via some 'flag' on the item - but I can possibly see a need for something similar), and relating one item to the same parent twice.

    However, this should work...

    modelBuilder.Entity<SomeEntity>()
        .HasOptional(x => x.DefaultItem)
        .WithOptionalPrincipal() // x => x.DefaultForEntity)
        .WillCascadeOnDelete(false);
    ...
    // public SomeEntity DefaultForEntity { get; set; } // optional
    

    ...and use it like:

    var item = new Item { ItemName = "Default1", };
    db.SomeEntities.Add(new SomeEntity { DefaultItem = item, Items = new[]
    {
        item,
        new Item{ ItemName = "Item1", },
        new Item{ ItemName = "Item2", },
        new Item{ ItemName = "Item3", },
        new Item{ ItemName = "Item4", },
    }
    });
    db.SaveChanges();
    
    0 讨论(0)
提交回复
热议问题