2014-09-13 104 views
0

我有兩張表Employee和Permenent表。 permenet表是員工 的ISA表下面是兩個表WCF linq從多個表中查詢

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
  1. 部分&& per.employee_no == emp.employee_no是沒有必要的,因爲你已經加入這個條件。
  2. 此外,您還只選擇了permenenets,它們的username完全等於uname,因此它會生成與per.username = @uname類似的SQL,但不會生成per.username LIKE @uname。如果你不尋求完全匹配,那麼將不得不使用SqlMethods.Like或其他東西。
  3. 檢查某處值resl.ToString()(即通過設置斷點並使用監視)並嘗試直接對SQL Server運行生成的查詢,並將該參數替換爲uname值並查看是否得到任何結果。