C#|实体框架|无法从固定大小的类型数组中删除项目

时间:2016-11-24 20:28:35

标签: entity-framework dbset

在EF中,我尝试使用语法添加记录:

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

我得到了这个疯狂的错误: &#34;无法从固定大小的数组&#34;

中删除项目

我做了一些调整,它建议我从生成的上下文文件中从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 个答案:

答案 0 :(得分:2)

DbSet<>是正确的,无需将其更改为List<>。我认为发现的建议是误导性的,不是问题。

要添加新实体,请尝试以下操作:

var ctx = new GeniusDBContext();

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

答案 1 :(得分:0)

我使用了约翰的方法,它在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);

最后,它起作用了!希望对大家有帮助