开发者

How can I use EF in windows forms to insert new data?

Hi

Maybe it's simple question, but 开发者_StackOverflow社区it's my first time with EF + win app so ... I'm building win app with EF by adding edmx as data source then drag and drop the tables to get navigator and binding source .. when I press the add button in the navigator it allows me to enter new data but when I save the context I get NULL data for all fields except the auto increment field ( the ID field )....

What should I do to save many entries ...?

DO I have to loop over all the entities in the binding source and add them to the context ??

Thanx in advance

Update:

I forgot to say that when i use data grid view it adds the items correctly but with "Details" it didn't ..


I figure it out ..
The problem appears when i drag and drop entity from data source as "Details" control ..
the problem was that there is no connection between the context and the new item in binding source ( which created by clicking the "Add" button in the navigator ) .. so we have to make this connection manually by getting the new entity and added it to the context every time we add new item .
Finally we should end the edit mode in the binding source and accept all changes after saving changes in the context ( accepting changes will allow us to update the new item after saving it ) .. and here is the code :

    private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
    {
        MyEntity newEnt = new MyEntity();
        newEnt = (MyEntity)MyEntityBindingSource.Current;
        ctx.AddToAuthors(newEnt);
    }

    private void MyEntityBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
        try
        {
            MyEntityBindingSource.EndEdit();
            ctx.SaveChanges();
            ctx.AcceptAllChanges();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }  

I hope this was helpful..

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜