2015-06-18 52 views
-1

如何將表返回結果從表格分配到通用列表如何將列表分配到通用列表

這是一個WCF服務方法。

public List<T> GetApprovedStateList(DateTime effectiveDate) 
    { 
     List<T> stateList = null; 

     using (var db = new Context()) 
     { 
      stateList = (from a in db.StateProductList 
         join b in db.States on a.stateID equals b.stateID 
         where a.effectiveDate <= effectiveDate 
         select b).ToList(); 
     } 

     return stateList; 
    } 

這裏是我的實體類

public class Entities 
{ 
    public class State 
    { 
     public int stateID { get; set; } 
     public string stateCode { get; set; } 
     public string stateDescription { get; set; } 


    } 

這裏是我的背景下

public class Context : DbContext, IDisposable 
{ 
    public Context() : base("EcommConnectionString") 
    { 
    } 
    public List<Entities.State> States { get; set; } 
    public List<Entities.Product> Products { get; set; } 
    public List<Entities.StateProduct_List> StateProductList { get; set; } 


} 

如何從WCF服務返回泛型列表呢?

+0

你會期待'T'在這裏?這不是一種通用的方法。即使它是一種通用的方法,如果'T'與'StateProductList'返回的類型不是同一類型,那麼您會如何期望它能夠工作? –

+0

@JonSkeet我認爲類是通用的,而不是方法。當然,這留下了其他問題。 (哦,這是從查詢返回的狀態,不是狀態產品,也不是以任何方式使您的觀點無效。) – Servy

+0

@Servy:也許。很難說 - 我懷疑* OP基本上有點困惑。 –

回答

2

您不這樣做,因爲您沒有的列表與該泛型類型不是同一類型。您應該返回您實際擁有的值類型的列表。

public List<State> GetApprovedStateList(DateTime effectiveDate) 
{ 
    using (var db = new Context()) 
    { 
     return (from a in db.StateProductList 
        join b in db.States on a.stateID equals b.stateID 
        where a.effectiveDate <= effectiveDate 
        select b).ToList(); 
    } 
} 
+0

我編輯了這個問題。 –

+0

@nimishjain看到實體或你的背景決不會改變我對這個問題的答案。 – Servy

+0

但是如果我想從wcf服務方法返回通用列表,我該怎麼做或返回列表是正確的方法? –