【发布时间】:2011-08-10 11:37:31
【问题描述】:
在我的数据库中,我想将“视图”之一的用户 GUI 设置保存为分号分隔的字符串,即:“1;31;5;411;”。
我在这个项目中使用了 NNibernate,这是这个特定私有成员的映射和代码;
User.Settings 的 C# 实体代码
private string _linkConsole = "0";
[DataMember]
public LinkConsole LinkConsole
{
get { return new LinkConsole(_linkConsole); }
set { _linkConsole = value.GetSqlString(); }
}
XML 映射:
<property name="LinkConsole" type="System.String" access="field.camelcase-underscore" not-null="true"/>
LinkConsole 有很多用于 GUI 特定设置的公共方法,这些方法用于切换某些私有成员的值。
当需要将此设置保存到数据库时,.GetSqlString();格式化字符串并将其写入私有成员 _linkConsole ,这是暴露给 NHibernate 和数据库的私有成员。
问题:
当我尝试使用 GUI 做某事时,即:
User.Settings.LinkConsole.SetRightPaneContent(50);
这从未存储在对象 LinkConsole 上,我似乎无法弄清楚为什么? 当我设置断点时,我在 Visual Studio 中收到一条消息:
您的介入请求导致物业或运营商自动介入
也许这是问题的结果,我以错误的方式设计它? 如果是这样,是否可以结合私有字符串成员来实现这一点?
任何帮助将不胜感激!谢谢! :-)
【问题讨论】:
标签: c# nhibernate class-design