参数类型“Edm.Int16”和“Edm.String”与此操作不兼容

Posted

技术标签:

【中文标题】参数类型“Edm.Int16”和“Edm.String”与此操作不兼容【英文标题】:The argument types 'Edm.Int16' and 'Edm.String' are incompatible for this operation 【发布时间】: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" 感谢您的帮助! 【参考方案1】:

cast(it.[ScenarioID] as System.String)

【讨论】:

以上是关于参数类型“Edm.Int16”和“Edm.String”与此操作不兼容的主要内容,如果未能解决你的问题,请参考以下文章

009 参数映射---基本类型和包装类型,数组

Python中函数参数类型和参数绑定

具有不同参数类型和存储类型的回调

Scala之类型参数和对象

“数字”类型的参数不能分配给“数字和字符串”类型的参数

匹配参数的可空性和返回类型的泛型类型参数