- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个使用 .NET 框架 v4.5 和 EF v6.1.1 的 ASP.NET Web 窗体应用程序。
我正在使用新的 EntityDatasource用于绑定(bind)和更新
ObjectContext
,现在我将其更改为使用 DbContext
。进行此更改后,由于类型转换无效,我遇到了构建错误:
e.Context = new SchoolEntities();
这是显而易见的,因为 EntityDatasource EventArgs e
的 "Context" 属性属于 ObjectContext
而 SchoolEntities 属于 DbContext
类型。
我还在使用 e.Context
属性进行一些 CRUD 操作,例如:
var school = e.Context.Schools.FirstOrDefault();
e.Context.Departments.Add(...);
e.Context.SaveChanges();
为了修复错误,我从 DbContext 中获取了 ObjectContext,如下所示:
e.Context = ((IObjectContextAdapter)_ctx).ObjectContext;
此处 e
是 Microsoft.AspNet.EntityDataSource 的事件参数。
我还添加了 EntityDataSource_ContextCreating() 事件来解决类型转换问题:
protected void EntityDataSource_ContextCreating(object sender, Microsoft.AspNet.EntityDataSource.EntityDataSourceContextCreatingEventArgs e)
{
if (_ctx == null)
_ctx = new SchoolEntities();
e.Context = ((IObjectContextAdapter)_ctx).ObjectContext;
}
进行此更改后,我摆脱了构建错误,但它导致了其他几个错误。
如果我正在使用 e.Context = ((IObjectContextAdapter)_ctx).ObjectContext; 然后在取回实体时(var school = (School)e.Entity ;
) 在 EntityDatasource 的更新事件中我丢失了导航属性。
我没有找到任何方法来避免在 EntityDatasource 中使用 ObjectContext。我想远离 ObjectContext,因为它已在 EF 7 中完全删除。
因此,为了解决所有这些问题,我目前添加了一个页面级上下文对象,例如:
private SchooEntities _ctx;
我从 EntityDatasource 的上下文创建事件中删除了 e.Context = ((IObjectContextAdapter)_ctx).ObjectContext;。我还删除了使用 e.Context 属性进行 CRUD 操作的现有代码。我使用了页面级别的 context(_ctx) 变量而不是 e.Context 并且一切正常。所以这证实了罪魁祸首是 e.Context = ((IObjectContextAdapter)_ctx).ObjectContext;
如何有效地将 DbContext
与 EntityDatasource ( http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/) 控件一起使用?
对于我的情况,为了取回导航属性(同时从 eventargsvar school = (School)e.Entity;
检索实体)我将做哪些更改?
如果我不使用 EntityDataSource 控件的 e.Context
属性,那么我认为根本没有使用 EntityDatasource 吗? (仅供引用:我仅将 EntityDatasource 控件用于Bind 和Update 操作)
非常感谢任何帮助。
最佳答案
为确保填充导航属性,您需要在 EntityDataSource 的 [Include] 属性中将要填充的那些设置为逗号分隔列表。
关于c# - 如何在 EF 6.1.1 中将 DbContext 用于 EntityDatasource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27292415/
我真的很喜欢 Entity Framework ,但有一些关键部分对我来说是一个挑战。谁能告诉我如何在关联列上过滤 EntityDataSource? EF 隐藏 FK 值,而是具有关联属性。给定一个
我有一个 ASP .net C# 项目,它使用 EntityDataSource 和 DevExpress aspxGridView,它运行良好,允许我选择、更新、插入和删除。但是我想使用自定义删除方
我有一个包含 3 个表的数据库: User{UserId,UserName} Role{RoleId,RoleName} User_Role{UserId,RoleId} 这个查询: int user
我正在从 EF5 升级到 EF6,为此我正在使用新发布的 EntityDataSource 控件 http://blogs.msdn.com/b/webdev/archive/2014/02/28/a
我想知道如何处理 EntityDataSource 中的自连接。 如果我有这样的查询: SELECT b.degree_name ,c.degree_name as degree_next FROM
我在我的实体模型中定义了一个表。我还在模型的表上定义了外键导航属性。 Users - UserID - Username - UserGroupID Groups - GroupID - GroupN
我有一个绑定(bind)到这个 EntityDataSource 的 GridView:
我创建了一个 EntityDataModel,如下所示: 我有一个用户控件,我想在其中从数据库读取数据并写入我的用户控件,但我不想为此编写核心 ADO.NET 代码。 所以我想我可以使用 Entity
我使用 EF 4、C# 和 MS Membership Provider。 我有一个带有 DataSource 和 EntityDataSource Web 控件的 GridView。 我想使用 En
我将文件上传到支持 ASP.Net 3.5 的远程服务器。网站是使用 ASP.Net 3.5 和 Entity Framework 开发的。我也将 dll 复制到 bin 文件夹。但是我收到以下错误
我有一个 EntityDataSource 绑定(bind)到 gridview 数据使用的许多过滤器,我想访问被选为 EntityDataSource 的实体,以便能够以 xml 格式导出它们,我该
我正在为使用 Northwind 数据库的客户端制作一个非常简单的模型。我有一个包含三个实体的 EDMX 文件:产品、类别和供应商。 我正在尝试创建一个具有 GridView 的页面,用于显示产品,包
如何在 EntityDataSource 中插入新记录(来自 gridview) 非常感谢。 最佳答案 我现在也遇到了同样的问题,我发现了这个: How to fire up insert event
我正在尝试获取至少具有 1 个图表的项目,项目和图表具有一对多关系。 我尝试过这个: 0" runat="server" /> 但我收到错误消息: No overload of canonical
我有一个在很多地方使用 EntityDataSource 的应用程序。 在 EDS 中,我根据来自 TextBox 的用户输入手动构建 Where 子句。 我希望用户在查询数据时能够输入“*”(星号)
PaymentsDueEntityDataSource.ContextTypeName = "Bills.DAL.BillsEntities"; PaymentsDueEntityDa
我正在使用 EntityDateSource 并添加 where 条件以在运行时过滤数据,然后将网格绑定(bind)到数据源,但出现以下错误:- The argument types 'Edm.Dat
您好,我有一个 EntityDataSource。 我需要以编程方式发送一个变量 (@SelectedValue),以便在 EntityDataSource 的 WHERE 过滤器中使用。 你能发布一
我正在尝试创建一个用于更新帐户详细信息的成员(member)页面。我想用成员的数据填充一个表单,但我不知道如何在 EntityDataSource 上设置过滤器来限制查询。 当我根据成员(member
我很难过! 以编程方式为 EntityDataSource 控件设置选择参数的最佳方法是什么? 具体来说,我想使用 Page.User.ProviderUserKey 在我拥有的自定义用户详细信息表中
我是一名优秀的程序员,十分优秀!