使用此代码:
var locationsInDB = from TaSLs_SQLCELocationDataDefinition location in
TaSLs_SQLCELocation.TaSLs_SQLCELocationDataDefinitions
where location.SavedToCloud = false
select location;
......我明白了,
“*非静态字段,方法或者需要对象引用 property'TaSLS_PhoneApp.MainPage.TaSLs_SQLCELocation'*“
我在一个单独的类中声明了TaSLs_SQLCELocationDataContext:
public class TaSLs_SQLCELocationDataContext : DataContext
{
public static string DBConnectionString = "Data Source=isostore:/gr8GooglyMoogly.sdf";
public TaSLs_SQLCELocationDataContext(string connectionString)
: base(connectionString)
{ }
public Table<TaSLs_SQLCELocationDataDefinition> TaSLs_SQLCELocationDataDefinitions;
}
我无法将TaSLs_SQLCELocationDataContext设为静态,因为它实现了DataContext
如果我像这样实例化那个类:
TaSLs_SQLCELocationDataContext tsldc = new TaSLs_SQLCELocationDataContext();
var locationsInDB = from TaSLs_SQLCELocationDataDefinition location in
tsldc.TaSLs_SQLCELocationDataDefinitions
where location.SavedToCloud = false
select location;
......我接着,
“*'TaSLS_PhoneApp.TaSLs_Data.TaSLs_SQLCELocationDataContext'不会 包含一个带0参数的构造函数*“
它期待什么样的论点?
答案 0 :(得分:3)
期待连接字符串
答案 1 :(得分:1)
构造函数期望连接字符串由构造函数定义:
public TaSLs_SQLCELocationDataContext(string connectionString)
但是,由于您未在代码中实例化表,因此稍后将获得空引用异常。
答案 2 :(得分:1)
对于您的第一个问题“为什么在同一个类中声明的公共类型需要实例化?”你需要省略类名 - 在这种情况下是'TaSLs_SQLCELocation'并通过this关键字访问你的类属性。
但是,如果您想从定义属性的类中访问您的属性'TaSLs_SQLCELocationDataDefinitions',那么这只适用于您的案例'TaSLs_SQLCELocationDataContext'
试试这个:
var locationsInDB = from TaSLs_SQLCELocationDataDefinition location in
this.TaSLs_SQLCELocationDataDefinitions
where location.SavedToCloud = false
select location;