0

我试图找出绑定到.Net 中不相关表的最佳方法。我有一个 ADO .Net Entity 数据模型,其中包含几个相关的表和一些不相关的表。

例如,我有以下表格: KEY_VALUE_LKP 与列 LKP_TEXT、LKP_VALUE 和 LKP_TYPE REQUEST_DET 与列 REQUESTNO、USERID 和 REQ_STATUS USER_DET 与列 USERNAME、USERID

REQUEST_DET 与 KEY_VALUE_LKP 相关,其中 REQ_STATUS = LKP_VALUE 和 LKP_TYPE="REQUEST_CRITICALITY" 但此关系未在数据库中定义 REQUEST_DET 与数据库中定义的 USER_DET 具有外键关系,其中 USERID=USERID

当我构建我的模型时,我得到了三个表以及 USER_DET 与 REQUEST_DET 相关的事实

使用 FORMVIEW 我绑定到请求数据(REQUEST_DET EntityDataSource),并且可以查看相关表(USERNAME、REQUESTNO)请求的相关信息,但我得到了 REQ_STATUS 的数值。

我想做的是检索 LKP_TEXT 值,但看到 KEY_VALUE_LKP 表之间没有定义关系,EntityDataSource 上的“包含”属性将不起作用。

我向 WebForm 添加了第二个 EntityDataSource 并将其链接到 KEY_VALUE_LKP 表并添加了 where="it.LKP_TYPE='REQUEST_CRITICALITY'"。我知道我可以将它绑定到 DropDown 并在后面的代码中设置选定的值,但我希望它绑定到 Label 而不是下拉列表。

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

在此先感谢,-J

4

1 回答 1

0

我找到了一种使用 Entity 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;
于 2009-07-01T19:58:00.367 回答