我有一个定义如下的类:
public class DatabaseEntity<T> where T : DatabaseEntity<T> {
public static string Query { get; protected set; }
public static IList<T> Load() {
return Database.Get(Query);
}
}
public class Node : DatabaseEntity<Node> {
static Node() {
Node.Query = @"SELECT Id FROM Node";
}
}
当我在代码后台(
Window.xaml.cs
)中运行Node.Load()
时,节点的静态构造函数从未被触发;或者至少没有命中断点,并且未将Node.Query设置为除null以外的任何值。是否有任何原因会出现这种情况?
解决方案
请参阅下面的答案,了解一些解决方案。对于我的情况,我决定简单地使
Query
变量公共,并在一个地方设置所有Query
实例。(不是理想的解决方案,但它有效。)
private const string Query = [query];
设为常量呢? - atlasteDatabaseEntity <Node> .Query!= DatabaseEntity <SubNode> .Query
- Charles W