【发布时间】:2020-09-12 07:43:19
【问题描述】:
我有 3 个表:1)代理 2)代理队列 3)代理节点。 AgentId 是 1) 中的主键,表 2) 和 3) 依赖于 1。 我想创建一个模型来访问一个视图的这些表的属性。 我是 ASP.NET CORE 的新手,如果有人能指出我做同样事情的正确方向,那就太好了。
我的模型类是:
public class Agents
{
[Key]
[DisplayName("Agent Id")]
public long AgentId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Status { get; set; }
[DisplayName("Last Checked")]
public DateTime LastChecked { get; set; }
public bool Deleted { get; set; }
public IEnumerable<Agents> agents { get; set; }
public IEnumerable<AgentMachines> agentMachines { get; set; }
public IEnumerable<AgentQueues> agentQueues { get; set; }
}
public class AgentMachines
{
[Key]
[DisplayName("Machine Id")]
public long MachineId { get; set; }
[DisplayName("Agent Id")]
public long AgentId { get; set; }
public string Address { get; set; }
public string IP { get; set; }
[DisplayName("Logged User")]
public string LoggedUser { get; set; }
[DisplayName("AD User Account")]
public string ADUserAccount { get; set; }
public IEnumerable<Agents> agents { get; set; }
}
public class AgentQueues
{
[Key]
[DisplayName("Agent Queue Id")]
public long AgentQueueId { get; set; }
[DisplayName("Agent Id")]
public long AgentId { get; set; }
[DisplayName("Test Id")]
public long TestId { get; set; }
[DisplayName("Value Set Id")]
public long ValueSetId { get; set; }
[DisplayName("Process Id")]
public string ProcessId { get; set; }
public string Status { get; set; }
[DisplayName("Update User")]
public string UpdateUser { get; set; }
[DisplayName("Schedule Time")]
public DateTime? ScheduleTime { get; set; }
[DisplayName("Update Date")]
public DateTime? UpdateDate { get; set; }
public bool Deleted { get; set; }
[DisplayName("Test")]
public string TestName { get; set; }
[DisplayName("Value Set")]
public string ValueSetName { get; set; }
public IEnumerable<Agents> agents { get; set; }
}
public class TestAgentDetail
{
public IEnumerable<AgentMachines> agentMachines { get; set; }
public IEnumerable<AgentQueues> agentQueues { get; set; }
public IEnumerable<Agents> agents { get; set; }
}
我目前的控制器代码是:
public async Task<IActionResult> Details(long? id)
{
var viewModel = new TestAgentDetail();
viewModel.agents = await _context.Agents
.Include(i => i.agentMachines)
.Include(i => i.agentQueues)
.AsNoTracking()
.ToListAsync();
if (id != null)
{
Agents agent = viewModel.agents.Where(
i => i.AgentId == id.Value).Single();
viewModel.agentMachines = agent.agentMachines.Select(s => s.LoggedUser);
}
return View(viewModel);
}
【问题讨论】:
标签: c# asp.net-mvc visual-studio asp.net-core model-view-controller