Linq to sql LINQ到SQL表列表到接口列表

Linq to sql LINQ到SQL表列表到接口列表,linq-to-sql,interface,Linq To Sql,Interface,我有以下代码: public IQueryable<ITax> FindAllTaxes() { return db.Taxes; } public IQueryable FindAllTaxes() { 纳税申报表; } 我得到以下错误 Cannot implicitly convert type 'System.Data.Linq.Table<Models.Tax>' to 'System.Linq.IQueryable<Interfaces.I

我有以下代码:

public IQueryable<ITax> FindAllTaxes()
{
      return db.Taxes;
}
public IQueryable FindAllTaxes()
{
纳税申报表;
}
我得到以下错误

Cannot implicitly convert type 'System.Data.Linq.Table<Models.Tax>' to 'System.Linq.IQueryable<Interfaces.ITax>'
无法将类型“System.Data.Linq.Table”隐式转换为“System.Linq.IQueryable”
我尝试在任何地方使用界面,但不确定如何转换,有什么帮助吗?

试试这个

     public IQueryable<Taxe> FindAllTaxes() { return db.Taxes; }
public IQueryable FindAllTaxes(){return db.Taxes;}

public IQueryable FindAllTaxes(){return db.Taxes;}

恐怕我们还没有泛型类型的协方差。您可以执行
IQueryable
,但不能执行
IQueryable
。您可以引入转换,但它可能会破坏可组合性,使其变得无用。不过你可以试试:

return db.Taxes.Cast<ITax>();
返回db.Taxes.Cast();

在C#4.0中,如果没有额外的强制转换,这可能会起作用(尽管我没有尝试过)。

有关信息,请参阅stackoverflow编辑器;如果您将代码块缩进4个空格(或点击代码图标),它将正确呈现,包括最重要的转义。令人惊讶的是,一点格式设置就能改变问题的含义。我在琢磨为什么IQueryable(非泛型)不起作用,瞧,这确实是他所追求的界面的泛型。我也有同样的想法——我开始写一个关于Table:IQueryable:IQueryable的答案,然后想“我想知道……”-P
return db.Taxes.Cast<ITax>();