代码之家  ›  专栏  ›  技术社区  ›  Jay

实体模型和绑定标签到不相关的表

  •  0
  • Jay  · 技术社区  · 15 年前

    我正试图找出绑定到.NET中不相关表的最佳方法。我有一个ADO.NET实体数据模型,它包含几个相关的表和几个不相关的表。

    例如,我有以下表格: 带列LKP U TEXT、LKP U VALUE和LKP U TYPE的键U VALUE U LKP 带列REQUESTNO、USERID和REQ的REQUEST DET 带列的用户名称、用户ID

    请求_det与key_value_lkp相关,其中req_status=lkp_value和lkp_type=“request_criticality”,但此关系未在数据库中定义。 请求\det与数据库中定义的用户\det具有外键关系,其中userid=userid

    当我构建我的模型时,我得到了三个表,并且用户的DET与请求的DET相关。

    使用formview,我绑定到请求数据(request-det-entitydatasource),可以看到相关表的请求相关信息(用户名、requestno,但我得到req-tu状态的数值)。

    我想做的是检索LKP_文本值,但是看到键_值_LKP表之间没有定义关系,EntityDataSource上的“include”属性将不起作用。

    我在webform中添加了第二个entitydatasource,并将其链接到key_value_lkp表,并添加了where=“it.lkp_type='request_criticality'”。我知道我可以将它绑定到下拉列表,并在代码隐藏中设置选定的值,但我希望将它绑定到标签,而不是下拉列表。

    那么,从绑定到请求EntityDataSource的表单视图中,我可以将标签绑定到不同的EntityDataSource吗?

    事先谢谢, -J

    1 回复  |  直到 15 年前
        1
  •  0
  •   Jay    15 年前

    我发现了一个使用实体SQL执行此操作的方法,下面是一个类似的示例:

    string eSql = @"SELECT VALUE LKP FROM
    Key_Value_LKP as LKP where
    LKP.LKP_TYPE='REQUEST_CRITICALITY' and LKP.LkpValue=@lkpValue";
    
    ObjectQuery<Key_Value_LKP> statusQuery = ctx.CreateQuery<Key_Value_LKP>(eSql);
    ObjectParameter lkpValue = new ObjectParameter("lkpValue",lkpValue.ToString());
    statusQuery.Parameters.Add(lkpValue);
    
    string REQ_STATUS= statusQuery.First().LkpText;
    
    Label lState = (Label)fvRun.Row.FindControl("REQ_STATUSLabel");
    
    //set state to exisitng run state
    lState.Text = REQ_STATUS;