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);
И, наконец, это работает! Надеюсь помочь всем