WCF linq从多个表中查询

时间:2014-09-13 04:12:00

标签: sql wpf linq wcf

我有两个表Employee和Permenent表。 permenet表是Employee的ISA表  这是两个表的模式

create table employees(

employee_no varchar(5),
name varchar(50),
nic varchar(10),
address varchar(100),
designation varchar(20),

Land varchar(10),
Mobile varchar(10),  
constraint pkemployees primary key(employee_no),
constraint fkemployees foreign key(land,mobile) references telephone)


create table permenenet(

username varchar(20),
password varchar(10),
password_hint varchar(50),
employee_no varchar(5),
constraint fkpermenet foreign key(employee_no) references employees,
constraint pkpermenet primary key(employee_no).

我创建了WCF服务以获取名称和名称

    public List<employee>get_name(string uname){
                 var resl = (from per in dc.permenenets
                 join emp in dc.employees on per.employee_no equals emp.employee_no
                 where  per.username == uname && per.employee_no == emp.employee_no 
                 select emp);
     return resl.ToList();
    }

但是当我使用WCF客户端测试或从WPF应用程序获取数据时,我得到空答案。感谢帮助

1 个答案:

答案 0 :(得分:1)

  1. 部分&& per.employee_no == emp.employee_no不是必需的,因为您已经加入此条件。
  2. 此外,您只选择permenenetsusername完全相同的uname,以便生成与per.username = @uname类似但不会per.username LIKE @uname的SQL。如果您不寻求完全匹配,则必须使用SqlMethods.Like或其他内容。
  3. 以某种方式检查值resl.ToString()(即通过设置断点并使用watch)并尝试直接针对SQL Server运行生成的查询,并将参数替换为uname值,看看是否得到任何结果。