【发布时间】:2013-09-15 23:20:35
【问题描述】:
我遇到了关于在 EntityDataSource 控件中连接具有不同类型的 2 个字段的错误。
我有一个由 EntityDataSource 填充的下拉列表,这个 ddl 显示每个项目的 Id,我必须对其进行修改以显示 id + description 的串联。
下面是ddl的第一个定义:
<asp:DropDownList ID="ddlScenarioID" runat="server" AutoPostBack="false"
DataSourceID="edsScenarioID" DataTextField="ScenarioID "
DataValueField="ScenarioID" Height="25px" Width="200px" EnableViewState="true"
onselectedindexchanged="ddlScenarioID_SelectedIndexChanged"
onchange="return ScenarioOnSelectedIndexChange();">
</asp:DropDownList>
以及实体数据源:
<asp:EntityDataSource ID="edsScenarioID" runat="server"
ConnectionString="name=StressTestEntities"
DefaultContainerName="StressTestEntities" EnableFlattening="False"
EntitySetName="Scenarios"
ContextTypeName="BDTTWebConsole.Models.EF.StressTestEntities"
Select="it.[ScenarioID]" OrderBy="it.[ScenarioID] ASC">
</asp:EntityDataSource>
我尝试将新的 DisplayText 属性添加为 ScenarioId 和 Description 的串联,但它不起作用。我收到一条错误消息(请参阅我的帖子标题)
这是entitydatasource的修改代码
<asp:EntityDataSource ID="edsScenarioID" runat="server"
ConnectionString="name=StressTestEntities"
DefaultContainerName="StressTestEntities" EnableFlattening="False"
EntitySetName="Scenarios"
ContextTypeName="BDTTWebConsole.Models.EF.StressTestEntities"
Select="it.[ScenarioID], it.[ScenarioID]+it.[Description] AS DisplayText " OrderBy="it. [ScenarioID] ASC">
</asp:EntityDataSource>
有人可以帮我解决这个问题吗?我是 c# 和 .net 的新手。
谢谢你
【问题讨论】:
-
我不确定
asp:EntityDataSource的选择语句中允许使用什么语法,但您是否尝试在连接之前将it.[ScenarioID]转换为字符串? -
感谢您的回复。我试过 Select="it.[ScenarioID] , cast(it.[ScenarioID] as varchar(4))+'-'+ it.[Description] as DisplayText" 但还是不行
-
解决方案是按照 Odyss-jii 的建议进行投射。 Select="it.[ScenarioID] , cast(it.[ScenarioID] as System.String)+'-'+ it.[Description] as DisplayText" 感谢您的帮助!
标签: c# .net entity-framework