Преобразование DBContext в ObjectContext для использования с GridView
У меня есть проект webforms с использованием EF codefirst для сохранения данных. Я хотел бы использовать GridView и EntityDataSource, чтобы сохранить запись CRUD. Это возможно?
Могу ли я преобразовать свой DBContext в объект ObjectContext, ожидаемый EntityDataSource?
Вот что я пробовал:
- Получить индекс Row в событии Rowcommand от Asp.net
- ASP.NET GridView RowIndex как CommandArgument
- Как реализовать Yii2 Modal Dialog на кнопке просмотра и обновления Gridview?
- GridView связан с свойствами вложенного classа
- Как скрыть столбец (GridView), но все же получить доступ к его значению?
Однако я получаю это исключение:
Невозможно передать объект типа «SomeNamespace.Models.ShopDBContext» для ввода «System.Data.Objects.ObjectContext».
- Как установить GridView внутри ScrollView
- Как я могу экспортировать GridView.DataSource в datatable или dataset?
- Высота Gridview снижается
- Как скрыть столбцы в ASP.NET GridView с автогенерированными столбцами?
- Как удалить строку из GridView?
- Android: Как GridView auto_fit находит количество столбцов?
- Как реализовать выбор полной строки в GridView без кнопки выбора?
- Как отключить прокрутку GridView в Android?
Попробуй это:
var context = new YourDbContext(); var adapter = (IObjectContextAdapter)context; var objectContext = adapter.ObjectContext;
Попробуйте это ->
protected void OrdersDataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e) { var context = new YourContext(); e.Context = ((IObjectContextAdapter)context).ObjectContext; }
После 2 дней борьбы я нашел эту ссылку, которая мне очень помогла. Я работаю с VS 2012, и у меня была такая же проблема с DBContext.
Согласно ссылке, в VS2012 генератор кода по умолчанию был изменен для создания объектов POCO и DBContext в отличие от объектов, полученных из EntityObject и ObjectContext, который по умолчанию использовался в VS2010.
В обозревателе решений в рамках модели вашего объекта вам нужно удалить шаблоны tt, а в дизайнере – щелкнуть по поверхности дизайнера, а затем в свойствах изменить страtagsю генерации кода от «Нет» до «По умолчанию», чтобы получить объекты на основе EntityObject и полученные ObjectContext контекст.