为了Initialize Lazy-Load Proxy,先要Lock一下。但Lock了以后,再Update,就不提交到数据库去了。(为了不新建连接,Initialize和Update用的同一个Session)。 只能Lock了以后再Evict。 搞不懂这么设计为了什么,还是bug。暂且这样。
4 août
还是MSDN最权威,见http://msdn.microsoft.com/zh-cn/library/37899azc%28VS.80%29.aspx。其他都是谣言。
没工夫慢慢看,自己够用了就行。用中出现了一些小问题。
- 设计时的程序目录是IDE目录("…\Common 7\IDE\”),所以配置文件,私有程序集可能会出现找不到的情况。没找到很好的办法,配置文件就拷过去,程序集用AppDomain..AssemblyResolve 事件在程序中载入。
- 如果需要添加控件,不能用反射来直接创建控件(不会保存到*.Designer.cs里),而应该用
IDesignerHost h = (IDesignerHost)GetService(typeof(IDesignerHost));
Label label = (Label)h.CreateComponent(typeof(Label));
来创建。删除时同样用 h.DestroyComponent(label);
- 如何从Component得到主窗体:(component.Site.GetService(typeof(IDesignerHost)) as IDesignerHost).RootComponent as Form