问题标签 [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.
c# - 将分页与 GridView 一起使用时,EntityDataSource 为空
我一直在四处寻找答案,但到目前为止还没有找到解决方案。我正在尝试将 anEntityDataSource
与 GridView (C#) 一起使用。GridView 最初没有填充,Page_Load
因为我希望用户从下拉列表中选择一些信息。当用户做出一些选择并按下按钮时,我会修改 EDS 的 connectionstring 属性以使其特定于用户。这一切都很好,并且 GridView 填充了数据。
然后我尝试转到第 2 页,它工作正常。问题是当我尝试转到第 3 页时(这是任意的...我可以从 4 开始并尝试转到第 6 页...没关系)。此时,我在调试中观察并看到它EntityDataSource
是空的(TotalRowCount = 0)。我真的不想用一种non-EntityDataSource
方法重做这个,但别无选择,我会的。
我也被PageIndexChanging
解雇了,我正在尝试正确设置新索引,所以这似乎不是问题的原因......我不确定我是如何失去EntityDataSource
.
以下是部分代码:
我在这里做错了什么?我不明白 EDS 是如何变空的,或者我应该如何保持它的状态。
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 类型”
asp.net - 实体数据源过滤器
我有一个entity datasource
并且我想过滤它(created_on)以仅显示最大日期。我该怎么做呢?
目前,数据源仅按 it.status 过滤。我也会过滤it.created_on = Max(created_On)
..这就是我想要的想法,不知道如何得到它。
我能够得到类似的东西,linq
而且效果很好。只需要它entity datasource
。
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 的演员表,这是正确的解决方案:
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 上遇到问题。
c# - 将 MaterializedDataRecord 转换为实体或为什么 EntityDataSource 会破坏我的实体
我正在使用 EntityDataSource。当我将“选择”属性留空时,一切正常 - 在 SomeWebControl_DataBinding 中,我可以完美地将 GridRow 的 DataItem 转换为我的实体(我们称之为用户)。
但是,我只需要显示表的第 1 1000 行,所以我要做的是填充 EntityDataSource 的“Select”属性并将其设置为“TOP(1000) |实体中所有字段的列表|”。但只要我这样做
惨遭失败,告诉我它无法从 MaterializedDataRecord 转换为 USERS。
我最终做的是:
我可能会使用 (MaterializedDataRecord) 而不是 (DbDataRecord),我只是不想吓到我的同事。现在,这行得通,但是我觉得它很难看,并且有点破坏了使用 EntityFramework 的美感。此外,这是一个非常基本的示例,将来我可能会遇到类似的情况,我需要对许多其他字段进行装箱/拆箱,这看起来不太好。
所以我的问题是:有什么方法可以轻松地将 MaterializedDataRecord 转换为实体或设置 EntityDataSource 不考虑“选择”中存在的某些东西作为“威胁”,从而导致创建 MaterializedDataRecord 而不是实体?
我的意思是,如果我选择实体字段的子集,我会理解这种行为,但在这里我选择了所有字段,所以这对于 EntityDataSource 转换来说应该不是问题。
谢谢!
asp.net - EntityDataSource 执行两次查询
我有一个将数据从 EntityDataSource 绑定到分页的 ASP.NET ListView 的页面。该查询实际上是一个相当复杂的查询,我不知道 EDS 确实是要走的路,但它是继承的代码,我希望无需完全重新设计页面即可解决此问题。
问题是当页面被回发时,带有过滤器参数,查询在没有过滤器的情况下执行一次,然后再次使用过滤器。问题是未过滤的结果集是 17+ 百万条记录并且请求超时。
所以我的问题是...
- 为什么查询执行两次?我认为它可能与 ListView 上的 DataPager 有关,但是当我从页面中删除它时,它并没有改变任何东西。
更新:2013/04/16
谢谢@bUKaneer 和@lthibodeaux。我认为将请求信息添加到 OP 会很有帮助。
按照建议,我注释掉了 Pager 控件和列表视图。删除后,对数据库的所有请求都停止了。我只添加了 ListView 并且查询再次执行了两次。
没有为 EDS 本身分配额外的事件处理程序。
DataPager 实际上嵌入在一个单独的 UserControl 中,该 UserControl 包含在 ListView 之外,并且包含两次......
代码中唯一触及 EDS 的地方是 PreRender 阶段……
asp.net - 详细信息视图中的下拉列表过滤器
我在插入项目模板视图中有一个下拉列表(很长,超过 100 个项目),用于详细信息视图。我想添加一个文本框和按钮(搜索功能),以便过滤此列表,但出现以下错误。
Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用。
我创建了两个实体数据源,一个带有 where 子句,另一个没有。当我点击搜索时,后面的代码(按钮单击事件)将数据源切换到带有 where 子句和参数的数据源,但我得到了上面的错误。关于如何去做这件事的任何建议?
已编辑 将 aa.DataSource 从字符串更改为 EmpPersonalInfoLOV1(数据源的名称)
编辑#2 用户要求的更多信息..
数据源 #1 代码
数据源 #2 代码
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 数据集 - 是的,我们可以重新架构,我们将需要数周时间/个月,我们现在没有)
问题 ?
- 到底是怎么回事 ?
- 难道我做错了什么 ?(相对于糟糕的架构)
异常堆栈跟踪
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。