更新:2007 年 11 月
使用 EntityDataSource 控件的 CommandText 属性,您可以指定一个使用自定义实体 SQL 表达式的查询。与 SELECT 语句类似,CommandText 属性中的实体 SQL 表达式也创建不可更新的原始数据的投影。
如果将 CommandText 分配给 EntityDataSource 控件,将无法再通过该控件进行更新、插入或删除。在这种情况下,相关 EntityDataSourceView 控件的 CanDelete、CanInsert 和 CanUpdate 方法都返回 false。
示例
下面的示例使用提供给 CommandText 属性的实体 SQL 命令,来返回实体的集合。
<asp:EntityDataSource ID="ProductDataSource" runat="server"
CommandText="SELECT value p FROM Products AS p
WHERE p.ProductID
BETWEEN @OrderIdMin AND @OrderIdMax"
ConnectionString="name=AdventureWorksEntities"
DefaultContainerName="AdventureWorksEntities" >
<CommandParameters>
<asp:ControlParameter Name="OrderIdMin"
ControlID="ProductIdMin" Type="Int32"/>
<asp:ControlParameter Name="OrderIdMax"
ControlID="ProductIdMax" Type="Int32" />
</CommandParameters>
</asp:EntityDataSource>
下面的示例返回预测的列序列:
<asp:EntityDataSource ID="ProductDataSource" runat="server"
CommandText="SELECT p.ProductID, p.ProductName, p.UnitsOnOrder
FROM Products AS p
WHERE p.ProductID BETWEEN @OrderIDMin AND @OrderIDMax"
ContextTypeName="AdventureWorksModel. AdventureWorksEntities">
<CommandParameters>
<asp:ControlParameter Name="OrderIDMin"
ControlID="ProductIDMin" Type="Int32"/>
<asp:ControlParameter Name="OrderIDMax"
ControlID="ProductIDMax" Type="Int32" />
</CommandParameters>
</asp:EntityDataSource>