C# | Entity Framework | Элемент нельзя удалить из массива фиксированного размера

В EF я попытался добавить запись, используя синтаксис:

Context.Set<TABLENAME>().Add(TABLEROW)

Я получаю эту сумасшедшую ошибку: "Элемент нельзя удалить из массива фиксированного размера"

Я немного потрясен, и он предлагает мне перейти с DBSet на List из сгенерированного файла контекста:

public partial class GeniusDBContext : DbContext
{
    public virtual DbSet<TABLENAME> TABLENAMES { get; set; }
    ...
}

в

public partial class GeniusDBContext : DbContext
{
    public virtual List<TABLENAME> TABLENAMES { get; set; }
    ...
}

Это смешно, потому что если вы измените файл.edmx, вы потеряете эти изменения. Есть ли другой способ обойти это?

2 ответа

Решение

DbSet<> правильно, нет необходимости менять его на List<>, Я думаю, что найденное предложение вводит в заблуждение и не является проблемой.

Чтобы добавить новый объект, попробуйте это:

var ctx = new GeniusDBContext();

var entity = new MyEntity();
ctx.MyEntities.Add(entity);

Я использовал метод Джона, и он не работает на EF6. Итак, я обманул так:

      List<MyEntitie> lstEntity= new List<MyEntitie>();
lstEntity.Add(new MyEntitie
{
    FacID = FacID,
    FoodID = order.FoodID,
    OrderID = IsOrder.ID,
    Quantity = 1,
    ToppingID = -1,
});
db.MyEntities.AddRange(lstEntity);

И, наконец, это работает! Надеюсь помочь всем

Другие вопросы по тегам