我有一个在nHibernate v4.0.4.4000上运行的应用程序 - 它在三个单独的Web服务器上运行.对于ID生成,我使用默认的HiLo实现(跨表的唯一ID).
有时,在使用以下堆栈跟踪保存新实体时,它会生成重复的Id:
at NHibernate.AdoNet.SqlClientBatchingBatcher.DoExecuteBatch(IDbCommand ps)
at NHibernate.AdoNet.AbstractBatcher.ExecuteBatchWithTiming(IDbCommand ps)
at NHibernate.AdoNet.AbstractBatcher.ExecuteBatch()
at NHibernate.AdoNet.AbstractBatcher.PrepareCommand(CommandType type, SqlString sql, SqlType[] parameterTypes)
at NHibernate.AdoNet.AbstractBatcher.PrepareBatchCommand(CommandType type, SqlString sql, SqlType[] parameterTypes)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session)
at NHibernate.Action.EntityInsertAction.Execute()
at NHibernate.Engine.ActionQueue.Execute(IExecutable executable)
at NHibernate.Engine.ActionQueue.ExecuteActions(IList list)
at NHibernate.Engine.ActionQueue.ExecuteActions()
at NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session)
at NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event)
at NHibernate.Impl.SessionImpl.Flush()
at Xena.Database.Main.Listeners.Strategies.CreateEntityAuditTrailStrategy.Execute(Object criteria) in K:\Projects\Xena\WorkDir\src\Xena.Database.Main\Listeners\Strategies\CreateEntityAuditTrailStrategy.cs:line 41
at Xena.Domain.Rules.Strategies.StrategyExtensions.Execute[TCriteria](IEnumerable`1 strategies, TCriteria criteria) …Run Code Online (Sandbox Code Playgroud) 我已经采取了尝试并在其中一个盒子上安装了Linux(Linux Mint 9,如果这很重要) - 我想开始一些小型编程......但是从哪里开始.
我的背景:
我想转向一种新的编程语言 - 但仍然专注于桌面应用程序.
我需要的:
如果有人能指出我正确的方向,我会很高兴有点推动......
编辑:感谢您的所有建议 - 我想出了以下建议:
我将在以后尝试使用Vala和Perl并将MonoDevelop作为备份编辑器 - 如果一切都失败了,我将转向C++.我赞成所有答案,因为他们都帮助了我.
EDIT2:好的 - Vim有点太硬了......安装奶油在上面.
我已经阅读了很多示例/教程(包括在MSDN上的Ayende的Alexandria).
但是,仅仅获得一些更新的组件本身已被证明是一个障碍.获取Castle.Windsor的正确版本后 - 它无法在app.config文件中找到正确的部分.Rhino Service Bus和CastleBootstrapper中的语法也发生了变化 - 我现在完全感到困惑.关于Hibernating Rhinos的'文档'实际上并没有帮助我开始.
有没有人可以帮我一个Rhino Service Bus的工作样本,使用Castle Windsor v.3.0(测试版)或2.5.3,指点我已经在线的东西,或者只是给我一步一步指出我需要得到什么启动并运行?
我有一个带有一些复杂行为的ChildViewModels的ObservableCollection.
当我去编辑一行时 - DataGrid进入'编辑模式' - 这有效地禁用了当前单元格之外的UI通知,直到提交了行 - 这是预期的行为,更重要的是它可以被更改吗?
例:
public class ViewModel
{
public ViewModel()
{
Childs = new ObservableCollection<ChildViewModel> {new ChildViewModel()};
}
public ObservableCollection<ChildViewModel> Childs { get; private set; }
}
public class ChildViewModel : INotifyPropertyChanged
{
private string _firstProperty;
public string FirstProperty
{
get { return _firstProperty; }
set
{
_firstProperty = value;
_secondProperty = value;
OnPropetyChanged("FirstProperty");
OnPropetyChanged("SecondProperty");
}
}
private string _secondProperty;
public string SecondProperty
{
get { return _secondProperty; }
set
{
_secondProperty = value;
OnPropetyChanged("SecondProperty"); …Run Code Online (Sandbox Code Playgroud)