我正在尝试使用SilverlightPhoneDatabase为我的Windows Phone 7应用程序使用sqlite数据库。
dll有一个类数据库
public class Database
{
.
.
.
public Table<T> Table<T>();
.
.
}
类的定义表如下:
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<MyObj>().ToList();
从我的main.xaml.cs,我可以访问ToList()方法(Table类继承自ObservableCollection ..)
但是我在同一名称空间中的新cs中创建了一个新类..如果我尝试访问Table类上的ToList()方法,我收到编译器错误表&lt;&gt;不包含'ToList'的定义
我只是好奇为什么它不起作用?这可能是我想念的傻事。
答案 0 :(得分:15)
ToList
是IEnumerable<T>
上的扩展方法:System.Linq.Enumerable.ToList
因此您需要为System.Linq
命名空间添加一个使用它才能使用它。
编译器基本上是重写
App.MyDB.Table<MyObj>().ToList();
作为
System.Linq.Enumerable.ToList(App.MyDB.Table<MyObj>());