Linq to Entity 在数据库中插入数据

Posted

技术标签:

【中文标题】Linq to Entity 在数据库中插入数据【英文标题】:Linq to Entity insert data in db 【发布时间】:2013-09-07 05:56:18 【问题描述】:

如何使用 Linq to Entity 在 BidingNavigator 上单击保存按钮后插入添加到 GridView 中的数据。

我正在尝试将数据添加到数据库,但出现了一些问题。我正在使用此代码显示数据:

...

 private void PostojeciPRojekti_Load(object sender, EventArgs e)
        

            dbcontext = new logicrms2Entities1();

            var projekti = from c in dbcontext.projekti
                             select c;

            projektiBindingSource.DataSource = projekti.ToList();
            projektiGridControl.Refresh();



        

...

编辑

我尝试使用以下方法保存数据:

   private void projektiBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    


        dbcontext.SaveChanges();
        gridView1.RefreshData();


    

【问题讨论】:

保存数据到数据库的代码在哪里? 【参考方案1】:

首先在表单中维护一个新添加对象的列表:

private List<projekti> addedList = new List<projekti>();

然后,在 DataGridView 上处理 RowsAdded 事件:

dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded);

接下来,将任何添加的对象添加到 RowsAdded 事件处理程序的列表中:

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)

     addedList.Add(dataGridView1.Rows[e.RowIndex].DataBoundItem as projekti);

最后,在导航器的保存按钮 click 事件处理方法中,您可以存储对象:

private void saveButton_Click(object sender, EventArgs e)

     var dbcontext = new logicrms2Entities1();
     addedList.ForEach(p=> dbcontext.projeckit.Add(p));
     dbcontext.SaveChanges()

【讨论】:

感谢您的回答,我会尝试的。 :) 非常欢迎您,如果可以,请不要忘记将其标记为答案。 问题:GridView 不包含 'RowsAdded' 的定义并且没有扩展方法 'RowsAdded' GridView 是指 System.Windows.Forms.DataGridView 吗?如果是这样,它有一个名为 RowsAdded 的事件:msdn.microsoft.com/en-us/library/… 我的错...对不起,我正在使用 DevExpress.XtraGrid.Views.Grid.GridView

以上是关于Linq to Entity 在数据库中插入数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查询显示了良好的数据库值,但 LINQ to Entity 框架从无处获得空值

优化多个 LINQ to Entity Framework 查询

Linq to entity 没有生成 where 子句

Linq to Entity Paging with large dataset太慢了

LINQ TO SQL 和 ADO.NET ENTITY 有啥区别呢?

string.Join in Linq to Entity queries