C# 如何将列表分配给常规列表

C# 如何将列表分配给常规列表,c#,entity-framework,C#,Entity Framework,如何将表中的返回结果分配给泛型列表 这是一个WCF服务方法 public List<T> GetApprovedStateList(DateTime effectiveDate) { List<T> stateList = null; using ( var db = new Context()) { stateList = (from a in db.StateProductList

如何将表中的返回结果分配给泛型列表

这是一个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 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; }


}
公共类上下文:DbContext,IDisposable
{
公共上下文():基(“EcommConnectionString”)
{
}
公共列表状态{get;set;}
公共列表产品{get;set;}
公共列表StateProductList{get;set;}
}

那么,如何从WCF服务返回通用列表?

您没有,因为您没有的列表与该通用类型不同。您应该返回实际拥有的值类型的列表

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();
    }
}
公共列表GetApprovedStateList(日期时间有效日期)
{
使用(var db=new Context())
{
返回(从db.StateProductList中的
将b连接到a.stateID等于b.stateID的db.States中

where a.effectiveDate你希望
T
在这里是什么?这不是一个泛型方法。即使它是一个泛型方法,如果
T
StateProductList
返回的类型不同,你希望它如何工作?@JonSkeet我假设类而不是方法是泛型的。当然,这就剩下了另一个问题是的。(哦,是查询返回的状态,不是状态产品,也不是它以任何方式使您的观点无效。)@Servy:可能吧。很难说-我怀疑OP基本上有点混乱。@nimishjain看到实体或您的上下文不会改变我对问题的回答。但是如果我想从wcf服务方法返回泛型列表,我该怎么做,或者返回列表是正确的方法?@nimishjain您需要返回一个
列表
,因为您保存状态列表。您没有某种泛型类型的列表,因此无法返回某种泛型类型的列表。
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();
    }
}