7
私は 選択は
public List<EquipamentoNoDiscovery> GetEquipamentosNoDiscovery(int imID)
var lista = (from ma in ctx.macaddress
join m in ctx.mac on
ma.address_mac equals m.mac_id into g1
from m in g1.DefaultIfEmpty()
join ml in ctx.mac_link on
m.mac_id equals ml.mac_id into g2
from ml in g2.DefaultIfEmpty()
join im in ctx.immobile on
ml.link_id equals im.immobile_id into g3
from im in g3.DefaultIfEmpty()
join en in ctx.enterprise on
im.enterprise_id equals en.enterprise_id into g4
from en in g4.DefaultIfEmpty()
join pl in ctx.port_link on
ma.address_id equals pl.address_id into g5
from pl in g5.DefaultIfEmpty()
join p in ctx.port on
new { pl.sw_id, pl.port_id } equals new { p.sw_id, p.port_id }
join s in ctx.switch_lan on
pl.sw_id equals s.sw_id into g6
from s in g6.DefaultIfEmpty()
where pl.address_id == imID
select new
{
Regiao = en.enterprise_u_name,
Predio = im.immobile_u_name,
Equipamento = m.host,
TipoPlaca = m.mac_type,
Mac = ma.address_mac,
Ip_ma = ma.address_ip,
Ip_m = m.ip_address,
Comunidade = s.sw_community,
IpSwitch = s.sw_ip,
PortaIndex = p.port_index,
PortaNome = p.port_name
});
ObjectQuery oQuery = (ObjectQuery)lista;
string cmdSQL = oQuery.ToTraceString();
I)は(コマンドoQuery.ToTraceStringを使用する場合、私はこの "どこpl.address_id == IMID" を見ることができるとなって
LINQでこれを選択していこの "WHERE [Extent6]。[address_id] = @p_ linq _0"です。 私の選択は、SQLコマンドで値が@p_ linq _0に変更された場合、常に空に戻ります。正常に動作します。 お願いします。 ありがとう!
デバッグモードでは、私はimIDが期待されていたように値2を持っているのを見ることができます。 SQLコマンドでのみ – Sah
@Sah:あなたのデータベースの 'address_in'の型は何ですか? –
PK、FK、int、not null – Sah