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

时间:2014-10-14 09:42:30

标签: c# asp.net entity-framework

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

e.g。

背后的代码中有类似的东西
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>

1 个答案:

答案 0 :(得分:0)

对于您的情况,请尝试使用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>