实体数据源连接字符串作为变量

本文关键字:变量 字符串 数据源 连接 实体 | 更新日期: 2023-09-27 18:26:36

如何从codeehind页面中的变量集设置实体数据源连接字符串。

例如后面的代码中的类似内容

string edsconstring = "name=EDSEntities";

然后在aspx 中

        <asp:EntityDataSource ID="UnAuthPricesEDS" runat="server" 
            ConnectionString=<%= this.edsconstring %> DefaultContainerName="CS3Entities" 
            EnableFlattening="False" EntitySetName="CustomersItems" Where="it.Authorised=false"
            OrderBy="it.DateSet" >
    </asp:EntityDataSource>

实体数据源连接字符串作为变量

对于您的情况,请尝试使用CodeExpressionbuilder

添加此类:

[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder {
    public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, 
       object parsedData, ExpressionBuilderContext context) {
        return new CodeSnippetExpression(entry.Expression);
    }
}

ASPX标记:[观察ConnectionString="<%$ Code: edsconstring %>"]

<asp:EntityDataSource ID="UnAuthPricesEDS" runat="server" 
            ConnectionString="<%$ Code: edsconstring %>" DefaultContainerName="CS3Entities" 
            EnableFlattening="False" EntitySetName="CustomersItems" Where="it.Authorised=false"
            OrderBy="it.DateSet" >
    </asp:EntityDataSource>

另一种情况:使用ConnectionStringExpressionBuilder,这样您就可以引用web.config中新连接字符串部分中定义的连接字符串。这在使用新的声明性数据控件时非常有用:

<asp:EntityDataSource ID="UnAuthPricesEDS" runat="server" 
            ConnectionString="<%$ ConnectionStrings: MyConfigConnectionString %>" DefaultContainerName="CS3Entities" 
            EnableFlattening="False" EntitySetName="CustomersItems" Where="it.Authorised=false"
            OrderBy="it.DateSet" >
    </asp:EntityDataSource>