在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文件,您将丢失这些更改。还有另一种解决方法吗?
答案 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);
最后,它起作用了!希望对大家有帮助