public static void Exec(Action <TestDataContext> action) { lock (LOCK) { if (INSTANCE == null) { var helper = new SqlServerTestDbHelper("L2S"); helper.ResetDatabase(); INSTANCE = new TestDataContext(helper.ConnectionString); INSTANCE.ExecuteCommand( $@"create table {nameof(RemoteGroupingStress_DataItem)} ( {nameof(RemoteGroupingStress_DataItem.ID)} int identity primary key, {nameof(RemoteGroupingStress_DataItem.Num)} int not null, {nameof(RemoteGroupingStress_DataItem.NullNum)} int, {nameof(RemoteGroupingStress_DataItem.Date)} datetime2 not null, {nameof(RemoteGroupingStress_DataItem.NullDate)} datetime2 )" ); INSTANCE.ExecuteCommand( $@"create table {nameof(Summary_DataItem)} ( {nameof(Summary_DataItem.ID)} int identity primary key, {nameof(Summary_DataItem.Group1)} nvarchar, {nameof(Summary_DataItem.Group2)} nvarchar, {nameof(Summary_DataItem.Value)} int )" ); INSTANCE.ExecuteCommand( $@"create table {nameof(GenericTestDataItem)} ( {nameof(GenericTestDataItem.ID)} int identity primary key, {nameof(GenericTestDataItem.Num)} int )" ); } action(INSTANCE); } }