问题标签 [entitydatasource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
572 浏览

c# - 将分页与 GridView 一起使用时,EntityDataSource 为空

我一直在四处寻找答案,但到目前为止还没有找到解决方案。我正在尝试将 anEntityDataSource与 GridView (C#) 一起使用。GridView 最初没有填充,Page_Load因为我希望用户从下拉列表中选择一些信息。当用户做出一些选择并按下按钮时,我会修改 EDS 的 connectionstring 属性以使其特定于用户。这一切都很好,并且 GridView 填充了数据。

然后我尝试转到第 2 页,它工作正常。问题是当我尝试转到第 3 页时(这是任意的...我可以从 4 开始并尝试转到第 6 页...没关系)。此时,我在调试中观察并看到它EntityDataSource是空的(TotalRowCount = 0)。我真的不想用一种non-EntityDataSource方法重做这个,但别无选择,我会的。

我也被PageIndexChanging解雇了,我正在尝试正确设置新索引,所以这似乎不是问题的原因......我不确定我是如何失去EntityDataSource.

以下是部分代码:

我在这里做错了什么?我不明白 EDS 是如何变空的,或者我应该如何保持它的状态。

0 投票
3 回答
3486 浏览

asp.net - Entity Framework 5 + EntityDataSource + ASP.NET + .NET 4.0 找不到 CLR 类型

我使用 Entity Framework 5.0 创建了一个 ORM。我在我的 ASP.NET 应用程序中添加了对 ORM 的引用。我正在尝试使用 EntityDataSource 来填充 DropDownList。我可以毫无问题地配置 EntityDataSource。但是,我无法使用向导为 DropDownBox 的值和文本设置数据字段,如果单击“Refersh Schema”按钮(在数据源配置向导中),我收到以下错误,“Schema could not由于来自 EntityDataSource 的以下错误而被确定:找不到“的 CLR 类型”

0 投票
1 回答
835 浏览

asp.net - 实体数据源过滤器

我有一个entity datasource并且我想过滤它(created_on)以仅显示最大日期。我该怎么做呢?

目前,数据源仅按 it.status 过滤。我也会过滤it.created_on = Max(created_On)..这就是我想要的想法,不知道如何得到它。

我能够得到类似的东西,linq而且效果很好。只需要它entity datasource

0 投票
1 回答
827 浏览

casting - 在 EntityDataSource 中连接两个 DataTime 字段

我有两个 Edm.DateTime 类型的字段。如何获得 h:mm 格式的时间并将它们连接到 EntityDataSource 的 CommandText 中:“01/02/2013 3:15 AM 和 01/02/2013 4:15 AM”应该是“15:15-16:15 " 我找到了 concat 的演员表,这是正确的解决方案:

0 投票
1 回答
180 浏览

entity-framework - 在部分类中覆盖 ToString 时对实体关联的空引用 - EntityDataSource.Include 被忽略

我正在为实体框架使用动态数据,不幸的是我被困在 .NET 3.5 上,所以它是 EF1,目前这无法改变。

所以我的问题是,我尝试以几种方式添加 EntityDataSource.Include 属性来处理在 table1 的部分类中覆盖 ToString 方法时得到的空引用。我尝试在 EntityDataSource 声明中设置 Include in 标记,也尝试EntityDataSource.Include = "table2.table3"EntityDataSource.Selecting事件中设置,但都没有运气。

如您所见,我需要将包含添加到关联的关联中。我想在 table2 的覆盖 ToString 方法中显示“table3.name + table2.Date”,并在 table1 的编辑模式下反映在关联引用的下拉列表中。

请注意,Include 在 GridDataSource 上工作得很好,无论出于何种原因,我在 DetailsDataSource 上遇到问题。

0 投票
1 回答
408 浏览

c# - 将 MaterializedDataRecord 转换为实体或为什么 EntityDataSource 会破坏我的实体

我正在使用 EntityDataSource。当我将“选择”属性留空时,一切正常 - 在 SomeWebControl_DataBinding 中,我可以完美地将 GridRow 的 DataItem 转换为我的实体(我们称之为用户)。

但是,我只需要显示表的第 1 1000 行,所以我要做的是填充 EntityDataSource 的“Select”属性并将其设置为“TOP(1000) |实体中所有字段的列表|”。但只要我这样做

惨遭失败,告诉我它无法从 MaterializedDataRecord 转换为 USERS。

我最终做的是:

我可能会使用 (MaterializedDataRecord) 而不是 (DbDataRecord),我只是不想吓到我的同事。现在,这行得通,但是我觉得它很难看,并且有点破坏了使用 EntityFramework 的美感。此外,这是一个非常基本的示例,将来我可能会遇到类似的情况,我需要对许多其他字段进行装箱/拆箱,这看起来不太好。

所以我的问题是:有什么方法可以轻松地将 MaterializedDataRecord 转换为实体或设置 EntityDataSource 不考虑“选择”中存在的某些东西作为“威胁”,从而导致创建 MaterializedDataRecord 而不是实体?

我的意思是,如果我选择实体字段的子集,我会理解这种行为,但在这里我选择了所有字段,所以这对于 EntityDataSource 转换来说应该不是问题。

谢谢!

0 投票
1 回答
215 浏览

asp.net - EntityDataSource 执行两次查询

我有一个将数据从 EntityDataSource 绑定到分页的 ASP.NET ListView 的页面。该查询实际上是一个相当复杂的查询,我不知道 EDS 确实是要走的路,但它是继承的代码,我希望无需完全重新设计页面即可解决此问题。

问题是当页面被回发时,带有过滤器参数,查询在没有过滤器的情况下执行一次,然后再次使用过滤器。问题是未过滤的结果集是 17+ 百万条记录并且请求超时。

所以我的问题是...

  1. 为什么查询执行两次?我认为它可能与 ListView 上的 DataPager 有关,但是当我从页面中删除它时,它并没有改变任何东西。

更新:2013/04/16

谢谢@bUKaneer 和@lthibodeaux。我认为将请求信息添加到 OP 会很有帮助。

按照建议,我注释掉了 Pager 控件和列表视图。删除后,对数据库的所有请求都停止了。我只添加了 ListView 并且查询再次执行了两次。

没有为 EDS 本身分配额外的事件处理程序。

DataPager 实际上嵌入在一个单独的 UserControl 中,该 UserControl 包含在 ListView 之外,并且包含两次......

代码中唯一触及 EDS 的地方是 PreRender 阶段……

0 投票
1 回答
782 浏览

asp.net - 详细信息视图中的下拉列表过滤器

我在插入项目模板视图中有一个下拉列表(很长,超过 100 个项目),用于详细信息视图。我想添加一个文本框和按钮(搜索功能),以便过滤此列表,但出现以下错误。

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用。

我创建了两个实体数据源,一个带有 where 子句,另一个没有。当我点击搜索时,后面的代码(按钮单击事件)将数据源切换到带有 where 子句和参数的数据源,但我得到了上面的错误。关于如何去做这件事的任何建议?

已编辑 将 aa.DataSource 从字符串更改为 EmpPersonalInfoLOV1(数据源的名称)

编辑#2 用户要求的更多信息..

数据源 #1 代码

数据源 #2 代码

0 投票
0 回答
583 浏览

entity-framework - 使用带有 onContextCreating 的 entitydatasource 的静态 dbcontext 时出现异常

我想在会话中共享一个 dbcontext。我了解使用共享的缓存 Dbcontexts 存在许多问题。

所以我创建了一个全局 dbcontext 并将其保存在一个静态类变量中。

我能够创建选择、创建新实体、通过调用后面的代码中的 dbcontext 进行插入和更新,而不会出现问题

出于并发原因,我想在我的 web 表单中的 entitydatasource 控件中使用相同的 dbcontext。我通过使用 OnContextCreating 和 ONContextdisposing 事件来做到这一点。这适用于读取数据,但是当我尝试通过实体数据源(来自数据视图、网格视图等)进行更新时,出现以下异常

我已将产生错误的系统减少为 ef5.0 数据模型,使用单个表和具有单个实体数据源的单个 Web 表单页面。我已经复制了下面的代码

如您所见,它非常简单。每当 Entitydatasource 需要一个对象上下文来读取、更新等时,它都会调用 OnContextCreating。我在第一个 OnContextCreating 调用中创建 dbcontext,缓存在静态类变量中并为将来的 OnContextCreating 调用重用。OnContextCreating 事件被调用了几次,首先是页面加载,接下来是按下编辑按钮时的回发,最后(我认为)是实际的 dbsave。

如果我得到缓存并为每个调用创建一个新的 dbcontext,它就可以正常工作。即替换

此错误还有其他一些奇怪之处。如果我设置了一个 OnUpdating 事件,它应该在 entitydataosource 执行任何更新之前被调用,它永远不会被调用。我已经包含了异常的堆栈跟踪和本文的结尾。

我想用 EF 6.0 Alpha 3 对此进行测试,但设计人员已将对象上下文移动到另一个程序集中,使其与 entitydatasouce 不兼容

这是我们网站进一步发展的主要障碍。我们现在唯一的选择是移动到非共享的 dbcontext,这将导致极端的性能问题(即在页面加载时多次加载相同的 20K 数据集 - 是的,我们可以重新架构,我们将需要数周时间/个月,我们现在没有)

问题 ?

  1. 到底是怎么回事 ?
  2. 难道我做错了什么 ?(相对于糟糕的架构)

异常堆栈跟踪

0 投票
1 回答
2379 浏览

asp.net - EntityDataSource OrderBy 冲突

我将 EntityDataSource 与 RadGrid 一起使用。我在将 EntityDataSource“OrderBy”与“Select Top”语句组合在一起时遇到问题。

我希望在select 子句之前应用 order by 子句。top(10)当省略select 子句的 " " 部分时,这一切都有效。它应该首先按 [Status] 排序,然后按 [TS] 排序。然后在 select 语句中使用 top ,似乎它丢弃了 order by 子句。

我正在使用 .Net 4.5 和 EntityFramework 5。