WinForms: DataGridView с E.F. не показывает новую строку

#winforms #entity-framework #datagridview

#winforms #entity-framework #datagridview

Вопрос:

У меня есть простая WinForm с DataGridView, которая показывает запись с Entity Framework. Моя проблема в том, что новая функция строки появляется только в том случае, если DataGridView пуст. В чем проблема?

Заранее благодарю вас.

Luis

PS Вот некоторые подробности о классе WinForm:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using GestioneFormazione;

namespace MpFormazione
{
public partial class MpFormazione : Form
{
    public MpFormazione()
    {
        InitializeComponent();
        this.dataGridView1.CellClick  = DataGridView1_CellClick;
        this.dataGridView1.AllowUserToAddRows = true;
        this.dataGridView1.VirtualMode = true;
        this.dataGridView1.AutoGenerateColumns = false;
    }

    private void DataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == this.ButtonColumunIndex)
        {
            if (e.RowIndex == 0)
            {
                Cliente cliente = new Cliente();
                
                cliente.ID = Guid.NewGuid();
                if (dataGridView1.Rows[0].Cells[1].Value != null)
                    cliente.Nome = dataGridView1.Rows[0].Cells[1].Value.ToString();                    
                SaveToDb(cliente);
                
            }
        }

        
    }
    private void SaveToDb(Cliente cliente)
    {
        using (var context = new MPFORMAZIONEEntities())
        {
            context.Cliente.Add(cliente);
            context.SaveChanges();                
        }
            

    }
    private void clienteBindingSource_CurrentChanged(object sender, EventArgs e)
    {
        
    }
    private void ClienteBindingSource_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
    {            

    }
    private int ButtonColumunIndex
    {
        get
        {
            return 2;
        }
    }

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {

    }

    private void MpFormazione_Load(object sender, EventArgs e)
    {
        using (var context = new MPFORMAZIONEEntities())
        {
            this.dataGridView1.DataSource = context.Cliente.ToList<Cliente>();                
        }
    }       
}
  

}

На странице есть только этот код и Entity Framework для объектов «Cliente» и «Dipendente».

Комментарии:

1. Покажите нам соответствующие части вашего кода

2. Это пакеты.конфигурация <?xml version=»1.0″ encoding=»utf-8″?> <packages> <package id=»EntityFramework» version=»6.2.0″ targetFramework=»net461″ /> <package id=»EntityFramework.it» version=»6.2.0″ targetFramework=»net461″ /> </packages>

3. У меня проблема с вставкой кода на C #. Даже если он имеет правильный отступ, он всегда говорит мне, что что-то не так

4. Отредактируйте свой вопрос. При вводе кода на любом языке начинайте каждую строку кода с четырех пробелов. После маркеров происходит какая-то странная вещь. В этом случае: после маркеров добавьте некоторый текст (например, пробел) перед добавлением кода