Last change
on this file since 3931 was
3931,
checked in by kgrading, 14 years ago
|
added minor speedups and better transaction handling to the server (#828)
|
File size:
1.5 KB
|
Rev | Line | |
---|
[2904] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using System.Linq;
|
---|
| 4 | using System.Text;
|
---|
[3578] | 5 | using System.Data.Linq;
|
---|
| 6 | using HeuristicLab.Tracing;
|
---|
[2904] | 7 |
|
---|
| 8 | namespace HeuristicLab.Hive.Server.LINQDataAccess {
|
---|
[3011] | 9 | public abstract class BaseDao<TBusiness, TDatabaseEntity> {
|
---|
[2904] | 10 | public static HiveDataContext Context {
|
---|
| 11 | get {
|
---|
| 12 | return ContextFactory.Context;
|
---|
| 13 | }
|
---|
| 14 | }
|
---|
[3011] | 15 |
|
---|
[3578] | 16 | protected void CommitChanges() {
|
---|
[3931] | 17 | //TODO: DoWhile
|
---|
[3578] | 18 | try {
|
---|
| 19 | Context.SubmitChanges(ConflictMode.ContinueOnConflict);
|
---|
| 20 | } catch (ChangeConflictException e) {
|
---|
| 21 | Logger.Warn("Concurrency Exception! " + e.Message);
|
---|
[3931] | 22 | foreach (ObjectChangeConflict conflict in Context.ChangeConflicts) {
|
---|
| 23 | Logger.Info("Conflicted: ");
|
---|
| 24 | foreach (MemberChangeConflict memberChangeConflict in conflict.MemberConflicts) {
|
---|
| 25 | Logger.Info(" Member in Conflict: " + memberChangeConflict.Member.Name);
|
---|
| 26 | Logger.Info(" Database Value: " + memberChangeConflict.DatabaseValue);
|
---|
| 27 | Logger.Info(" Original value: " + memberChangeConflict.OriginalValue);
|
---|
| 28 | Logger.Info(" Current value: " + memberChangeConflict.CurrentValue);
|
---|
| 29 | }
|
---|
[3578] | 30 | conflict.Resolve(RefreshMode.KeepChanges);
|
---|
| 31 | }
|
---|
[3931] | 32 | Context.SubmitChanges(ConflictMode.FailOnFirstConflict);
|
---|
[3578] | 33 | }
|
---|
| 34 | }
|
---|
| 35 |
|
---|
[3011] | 36 | public abstract TDatabaseEntity DtoToEntity(TBusiness source, TDatabaseEntity target);
|
---|
| 37 | public abstract TBusiness EntityToDto(TDatabaseEntity source, TBusiness target);
|
---|
| 38 |
|
---|
[2904] | 39 | }
|
---|
| 40 | }
|
---|
Note: See
TracBrowser
for help on using the repository browser.