Как связать EF Code First DbContext с источником данных Asp.Net? - PullRequest
7 голосов
/ 13 июня 2011

Я создал следующее Context для использования с Entity Framework Первый код :

public class Context : DbContext
    {
        public DbSet<Animal> Animals { get; set; }
    }

Теперь я хотел бы использовать этот Context в приложении Asp.Net для выполнения CRUD операций с использованием GridView. Мне нужно создать DataSource для привязки данных. Как бы я пошел?

ASP часть будет выглядеть так:

<asp:GridView runat="server" DataSourceID="animalDataSource" DataKeyNames="AnimalID" AutoGenerateColumns="false">   
    <Columns>
        <asp:BoundField DataField="Description" HeaderText="Description" />
        <asp:CommandField ShowCancelButton="true" ShowEditButton="true" ShowDeleteButton="true" />
    </Columns>
</asp:GridView>

1 Ответ

11 голосов
/ 13 июня 2011

Вы можете использовать EntityDataSource в качестве источника для GridView и реализовать обработчик для события ContextCreating:

protected void DataSource_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
    var context = new Context();
    e.Context = ((IObjectContextAdapter)context).ObjectContext;
}

Тогда вам просто нужно настроить источник данных на странице.EntitySetName должно быть таким же, как ваше DbSet имя свойства, отображаемое в контексте.

Другой способ - использовать ObjectDataSource, который создаст мост между GridView и DbSet<Animal>, но это может быть большесложный, особенно если вы хотите двунаправленную привязку данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...