public void getRECDR(string p)
{
try
{
DBDataContext Database = new DBDataContext();
var query = (from z in Database.Table01
join x in Database.Table02 on
new
{
t1 = z.drNO,
t2 = z.RecNO
}
equals
new
{
t1 = x.DrNO,
t2 = x.RecNO
}
join c in Database.Table03 on
new
{
t3 = x.DrNO,
t4 = x.TicketNo
}
equals
new
{
t3 = c.DrNo,
t4 = c.TicketNO
}
where z.drNO == p
select new
{
.../// Record data Here
}).FirstOrDefault();
txtbox.text = query.Record01;
....// etc.. etc..
}
catch (Exception ex)
{ MessageBox.Show(ex.Message.ToString()); }
}
如何以正确的方式加入Linq的桌子? 我曾经这样做,但它有一个像“指定演员”的错误。
起初,我认为这是因为我的标头表的主键重复,我在已经删除的详细信息表上将主键与外键匹配,但它仍然显示相同的错误。
我的Linq加入代码是对的吗?
请帮忙。感谢。
---更新
我在MS SQL查询中尝试了这个,如果它获取它确实拾取的数据
SELECT * FROM [Database.Table01] INNER JOIN
[Database.Table02] ON [Database.Table01].drNO = [Database.Table02].DrNO AND [Database.Table01].RecNO = [Database.Table02].RecNO INNER JOIN
[Database.Table03] ON [Database.Table01].DrNO = [Database.Table03].DrNO AND [Database.Table02].TicketNo = [Database.Table03].TicketNo
WHERE [Database.Table01].drNO = '00884'
这个查询语句会获取数据但是当我在我的linq上执行时它会说“指定的强制转换无效”..并且它具有相同的记录存储相同的连接。