public SpectrumViewVisualizeEventArgs (NHibernate.ISession session, SpectrumTableForm.PeptideSpectrumMatchRow row) { PeptideSpectrumMatchId = row.PeptideSpectrumMatchId; Spectrum = row.Spectrum; SpectrumSource = row.Source; Analysis = row.Analysis; Charge = row.Charge; lock (session) { var psm = session.Load<PeptideSpectrumMatch>(PeptideSpectrumMatchId); ModifiedSequence = psm.ToModifiedString(5); session.Evict(psm); } }
public static void AddSubsetPeakData (NHibernate.ISession session) { session.Transaction.Begin(); session.Clear(); foreach (SpectrumSource source in session.Query<SpectrumSource>()) { var subsetPeakData = new msdata.MSData(); subsetPeakData.id = subsetPeakData.run.id = source.Name; var spectrumList = new msdata.SpectrumListSimple(); subsetPeakData.run.spectrumList = spectrumList; foreach (Spectrum spectrum in source.Spectra.OrderBy(o => o.Index)) { var spectrumData = new msdata.Spectrum(); spectrumData.id = spectrum.NativeID; spectrumData.index = spectrum.Index; spectrumData.setMZIntensityArrays(new List<double>() { 100, 200, 300, 400, 500 }, new List<double>() { 10, 20, 30, 40, 50 }); spectrumList.spectra.Add(spectrumData); } session.Evict(source); var newSource = new SpectrumSource(subsetPeakData) { Id = source.Id, Group = source.Group, Name = source.Name, URL = source.URL }; session.Update(newSource); } session.Transaction.Commit(); }
/// <summary> /// Initialize Collection or Proxy /// ���ⲿInitialize��Ĭ��LockMode=Write�����ΪNone������д���ݿ⡣Lock��Ҫ��Evict /// </summary> /// <param name="proxy"></param> /// <param name="owner"></param> /// <param name="session"></param> internal static void Initialize(object proxy, object owner, NHibernate.ISession session) { if (null == proxy) return; if (!NHibernateUtil.IsInitialized(proxy)) { if (proxy is INHibernateProxy) { session.Lock(proxy, NHibernate.LockMode.None); NHibernateUtil.Initialize(proxy); session.Evict(proxy); } else if (proxy is IPersistentCollection) { bool b = session.Contains(owner); if (!b) { session.Lock(owner, NHibernate.LockMode.None); } NHibernateUtil.Initialize(proxy); if (!b) { session.Evict(owner); } } //if (proxy is INHibernateProxy || proxy is IPersistentCollection) //{ // if (proxy is INHibernateProxy) session.Lock(proxy, NHibernate.LockMode.None); // else if (!session.Contains(owner)) session.Lock(owner, NHibernate.LockMode.None); // NHibernateUtil.Initialize(proxy); //} } }