Since you have the associations set up correctly in your EF Model you shouldn't need the joins at all. You should be able to do this simply as:
var v = Computers
.Select(c => new {
Computer = c.ComputerProp,
Monitors = c.monitors.Count(), // note: not Sum(),
Ports = c.monitors.Sum(m => m.ports.Count())
});
I do notice in your test script where you are using objects, you are not instantiating the monitors and ports arrays and setting them to the objects you added. If you're using code-first EF for this (as I suspect you are), those values will be set when actually issuing the query against a database.