Вставка записей с помощью EntityDataSource

EntityDataSource позволяет использовать атрибут EnableInsert для разрешения операции вставки данных.

Однако непонятно каким образом можно вызвать эту операцию … привожу универсальное решение,

использующее расширение класса EntityDataSource

Создаем в своем проекте файл EntityDataSourceExtentions.cs с таким содержимым:

using System.Collections.Specialized; namespace System.Web.UI.WebControls{    public static class EntityDataSourceExtentions    {        private static bool DefaultOperationCallback(int affectedRows, Exception ex)        {            return false;        }         public static void Insert(this EntityDataSource dataSource)       {           (dataSource as IDataSource).GetView(string.Empty)               .Insert(new OrderedDictionary(), DefaultOperationCallback);       }    }}

А это пример использования:

protected void btnAddItem_Click(object sender, EventArgs e){    EntityDataSource1.Insert();} protected void EntityDataSource1_Inserting(object sender,    EntityDataSourceChangingEventArgs e){    var version = e.Entity as SoftwareVersion;    version.VersionNumber = tbVersionNumber.Text;    version.Description = tbDescription.Text;} protected void EntityDataSource1_Inserted(object sender,    EntityDataSourceChangedEventArgs e){    tbVersionNumber.Text = string.Empty;    tbDescription.Text = string.Empty;    GridView1.DataBind();}

Источник

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *