C# - 使用EF6.0将新数据插入数据库

时间:2016-12-01 20:19:03

标签: c# entity-framework sql-server-ce

所以我在我的功能上有这个代码(通过点击按钮激活):

entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp });

ctx.entries.InsertOnSubmit(ent);

ctx.ent.SubmitChanges();

并且数据库中的表结构如下(简要)。

  

entryId int identity(1,1)主键[not null],

     

prodId int foreign key [not null],

     

prodQty int [null],

     

hospId int外键[null],

     

contID int外键[not null],

     

freqMaintenance int [not null],

     

dateRec date [not null]默认sysdate,

     

empId int外键[not null],

     

批准位[null],

即时使用SQL Server Compact 4.0 EF6.0 + Visual Studio。

我想要做的是将数据插入表中。我尝试使用.SaveChanges.SubmitChanges,但语法中存在错误。

2 个答案:

答案 0 :(得分:0)

根据MSDN,你可以插入这样的新实体:

entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp });
ctx.entries.Add(ent);
ctx.SaveChanges();

同样根据同一篇文章,您可以通过明确指定该状态为"添加":

,将新实体添加到上下文中
entry ent = new entry { prodId = query1 , prodQty = int.Parse(textBox.Text) , hospId = query4 , contId = query5 , freqMaintenance = int.Parse(textBox1.Text), empId = this.emp });
ctx.Entry(ent).State = EntityState.Added; 
ctx.SaveChanges();

我不确定您是如何实现上下文的,但语法错误可能是因为ent

CTX的耳鼻喉科 .SubmitChanges();

答案 1 :(得分:0)

以下代码可能适合您。

ctx.Set<Entry>().Add(ent);
ctx.SaveChanges();