【问题标题】:Not able to access .ToList() method on Table无法访问 Table 上的 .ToList() 方法
【发布时间】:2011-10-07 06:59:31
【问题描述】:

我正在尝试使用 SilverlightPhoneDatabase 为我的 Windows Phone 7 应用程序使用 sqlite db。

dll有一个类数据库

    public class Database
    {
    .
    .
    .
    public Table<T> Table<T>();
    .
    .
    }

类Table的定义如下:

public class Table<T> : ObservableCollection<T>, ITable

然后在我的 App.xaml 我有一个方法

 public static Database MyDB
 {
get
{
// Delay creation of the view model until necessary
if (database == null)
OpenDatabase<MyObj>("MyObj");
return database;
}
}

现在,我可以从我的 xaml.cs 文件访问表上的 .ToList() 方法。 即如果我说

App.MyDB.Table&lt;MyObj&gt;().ToList();

从我的 main.xaml.cs 中,我可以访问 ToList() 方法(Table 类继承自 ObservableCollection..)

但是我在同一个命名空间中的新 cs 中创建了一个新类。如果我尝试访问 Table 类上的 ToList() 方法,则会收到编译器错误,即 Table 不包含 ' 的定义ToList'

我只是好奇为什么它不起作用?这可能是我缺少的一些愚蠢的东西。

【问题讨论】:

    标签: c# windows-phone-7


    【解决方案1】:

    ToListIEnumerable&lt;T&gt; 上的扩展方法:System.Linq.Enumerable.ToList,因此您需要为System.Linq 命名空间添加 using 才能使用它。

    编译器基本上是在重写

    App.MyDB.Table<MyObj>().ToList();
    

    作为

    System.Linq.Enumerable.ToList(App.MyDB.Table<MyObj>());
    

    【讨论】:

    • 是的,它做到了...这很奇怪..当我右键单击时没有解决建议..
    • AFAIK 您需要 ReSharper 对 using 提出建议,您需要添加以使扩展方法有效,Visual Studio 不提供它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2019-09-09
    • 2020-07-31
    相关资源
    最近更新 更多