我希望使用 2 個相關表中的值填充選擇串列,但如果使用相關值作為 DataTextField,我會得到空參考。
分支模型
public class BranchModel
{
public int ContractorCode { get; set; }
public int BranchNumber { get; set; }
public string BranchName { get; set; }
-- Excluded for brevity
}
分支分配模型
public class BranchAssignmentModel
{
public int Id { get; set; }
public int Colleague { get; set; }
public int Branch { get; set; }
public DateTime Created { get; set; }
public bool Active { get; set; }
public DateTime LastModified { get; set; }
public ColleagueModel? Col { get; set; }
public BranchModel? Bra { get; set; }
}
結果存盤在List中(collagueId是之前設定的變數)
Assignments = new List<BranchAssignmentModel>();
var basql = $@"SELECT ba.Colleague, ba.Branch, ba.Active, b.ContractorCode, b.BranchName
FROM HR.BranchAssignment ba
JOIN HR.Branch b ON ba.Branch = b.ContractorCode
WHERE ba.Active = 1 AND ba.Colleague = {colleagueId}";
using (var connection = new SqlConnection(_configuration.GetConnectionString("Default")))
{
var assignments = await connection.QueryAsync<BranchAssignmentModel, BranchModel, BranchAssignmentModel>(basql, (assignment,branch) =>
{
assignment.Bra = branch;
return assignment;
}, splitOn: "ContractorCode");
foreach (var assignment in assignments)
{
Assignments.Add(assignment);
}
}
運行后,串列將填充 5 個預期結果。當我使用以下內容創建選擇串列時,我得到一個空參考例外。
SelectBranches = new SelectList(Assignments,
nameof(BranchAssignmentModel.Branch), nameof(BranchAssignmentModel.Bra.BranchName));
圖片顯示關系在那里

如果我不使用相關欄位,則選擇串列顯示良好,即也僅使用分支作為 DataTextField
SelectBranches = new SelectList(Assignments,
nameof(BranchAssignmentModel.Branch), nameof(BranchAssignmentModel.Branch));
uj5u.com熱心網友回復:
如果您使用nameof(BranchAssignmentModel.Bra.BranchName),則DataTextField是BranchName。
您需要特定的名稱,如下所示:
SelectBranches = new SelectList(Assignments,
nameof(BranchAssignmentModel.Branch), "Bra.BranchName");

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394422.html
