Пример #1
0
        public void Expected_Not_Matched_PropertyCount()
        {
            var source = new PersonSource() { Name = "Junil, Um" };
            var target = new PersonTarget2();

            var mapping = new ReflectionMapping(source, target, new ReflectionMappingOption() { ThrowIfNotMatched = true });
        }
Пример #2
0
        public IConfigurationMapping <TSource, TDestination> CreateMap <TSource, TDestination>() where TDestination : new()
        {
            var key     = GenerateKey <TSource, TDestination>();
            var mapping = new ReflectionMapping <TSource, TDestination>(mappings);

            mappings.Add(key, mapping);

            return(mapping);
        }
Пример #3
0
        public void ReflectionMapping_Test()
        {
            var source = new PersonSource() { Name = "Junil, Um" };
            var target = new PersonTarget();

            var mapping = new ReflectionMapping(source, target);

            TestContext.WriteLine("SourcePerson's name is {0}", source.Name);
            TestContext.WriteLine("TargetPerson's name is {0} after Mapped ReflectionMapping", target.name);
            TestContext.WriteLine("{0} = {1}", source.Name, target.name);

            Assert.IsTrue(source.Name == target.name, "리플랙션으로 매핑된 Name 속성의 값이 틀립니다.");
        }
Пример #4
0
        static void Main(string[] args)
        {
            DA.WWWingsContext.ConnectionString = Program.CONNSTRING;


            CUI.Print("Entity Framework Core Samples", ConsoleColor.Blue, ConsoleColor.White);
            CUI.Print("(C) Dr. Holger Schwichtenberg 2016-2018, www.EFCore.net", ConsoleColor.Blue, ConsoleColor.White);
            var assembly        = Assembly.GetAssembly(typeof(Microsoft.EntityFrameworkCore.DbContext));
            var informalVersion = assembly.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false).OfType <AssemblyInformationalVersionAttribute>().FirstOrDefault()?.InformationalVersion;

            CUI.Print($"Application compiled for: {CLRInfo.GetCLRVersionCompiledFor()}");
            CUI.Print($"Application running on: {CLRInfo.GetCLRVersionRunningOn()}");
            CUI.Print("EF Core version: " + assembly.GetName().Version.ToString() + "/" + informalVersion);

            ShadowState.ColumnsAddedAfterCompilation();


            // Test connection to database and generate data if necessary
            if (DemoUtil.TestConnection() != "")
            {
                End();
            }
            //EFC_WWWingsV1_Reverse.DataGenerator.Run(true);
            DataGenerator.Run(false);



            //FirstLevelCache.ClearCache();

            // Connect to EFProfiler
            HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();


            CUI.Print("-------------------- START ------------- ", ConsoleColor.Blue, ConsoleColor.White);
            //QueriesDynamic.ExpressionTreeTwoConditions();
            End();

            #region Samples from the book"
            // ------------ Read data mit LINQ
            SimpleQueries.LINQ_List();
            SimpleQueries.LINQ_QueryWithPaging();
            SimpleQueries.LINQ_RepositoryPattern();
            SimpleQueries.Projection_Read();
            SimpleQueries.LINQ_SingleOrDefault();
            SimpleQueries.LINQ_Find();
            Queries.GroupBy();
            Queries.LINQ_RAMQueries();


            // ------------ Object relationships and loading strategies
            LoadingStrategies.Demo_LazyLoading();     // 1 SELECT, no Details :-(
            LoadingStrategies.Demo_EagerLoading();    // 4 SELECT
            LoadingStrategies.Demo_ExplizitLoading(); // many SELECT :-(
            LoadingStrategies.Demo_PreLoading();      // 5 SELECT
            LoadingStrategies.Demo_PreLoadingPilotsCaching();

            // ------------ CUD
            Conflicts.ChangeFlightOneProperty();
            Updates.ChangeFlightAndPilot();
            Updates.AddFlight();
            Updates.RemoveFlight();
            Updates.RemoveFlightWithKey();
            RelationChange.Demo_CreateRelatedObjects();
            Transactions.ExplicitTransactionTwoContextInstances();
            ChangeTrackerDemos.ChangeTracking_OneObject();
            ChangeTrackerDemos.ChangeTracking_MultipleObjects();
            ContradictoryRelationships.Demo_ContradictoryRelationships();

            // ----------------- Data conflicts
            Conflicts.ConflictWhileChangingFlight();
            ReadLock.UpdateWithReadLock();

            // ----------------- async
            Updates.Demo_ForeachProblem();
            AsyncOperations.ReadDataAsync();
            AsyncOperations.ChangeDataAsync();
            AsyncOperations.AsyncForeach();
            AsyncOperations.LINQ_MiscAsync();

            // ---------- Dynamic LINQ
            QueriesDynamic.LINQComposition();
            QueriesDynamic.ExpressionTreeTwoConditions();
            QueriesDynamic.ExpressionTreeNumerousConditions();
            QueriesDynamic.DynamicLINQNumerousCondition();

            // ----------------- SQL, SP, TVF
            SQLSPTVF.Demo_SQLDirect1();
            SQLSPTVF.Demo_SQLDirect2();
            SQLSPTVF.Demo_SQLDirect3();
            SQLSPTVF.Demo_SQLDirect4();
            SQLSPTVF.Demo_SQLDirectAndLINQComposition();
            SQLSPTVF.Demo_SP();
            SQLSPTVF.Demo_TVF();
            SQLSPTVF.Demo_SQLDirect_Projection();

            // ------------------- Performance / Tracking
            TrackingModes.TrackingMode_AsNoTracking();
            TrackingModes.TrackingMode_NoTracking_Attach();
            TrackingModes.TrackingMode_QueryTrackingBehavior();
            TrackingModes.TrackingMode_Performance();

            // ------------------- Tips
            EFC2_GlobalFilters.GlobalFilter();
            ShadowState.ReadAndChangeShadowProperty();
            CalculatedColumns.ComputedColumnWithFormula();
            CalculatedColumns.DefaultValues();

            // ------------------- Bulk operations
            BulkOperations.BulkDelete_Prepare();
            BulkOperations.BulkDeleteEFCAPIwithoutBatching();
            BulkOperations.BulkDelete_Prepare();
            BulkOperations.BulkDeleteEFCAPIwithBatching();
            BulkOperations.BulkDelete_Prepare();
            BulkOperations.BulkUpdateEFPlus();

            // ------------------- Performance / Caching
            Caching.Demo_MemoryCache();
            Caching.Demo_CacheManager();
            Caching.Demo_SecondLevelCache();

            // ------------------- Performance / Beziehungszuweisung
            ForeignKeyAssociations.ChangePilotUsingFK();
            ForeignKeyAssociations.ChangePilotUsingObjectAssignment();
            ForeignKeyAssociations.ChangePilotUsingFKShadowProperty();

            // ------------------- OOM / Automapper
            ReflectionMapping.Run();
            AutoMapper_HelloWorld.RunSimpleDemo();
            AutoMapperBasics.Demo_SingleObject();
            AutoMapperBasics.Demo_ListMapping();
            AutoMapperAdvanced.Inheritance();
            AutoMapperAdvanced.GenericDemo();
            AutoMapperAdvanced.GenericHomogeneousList();
            AutoMapperAdvanced.BeforeAfterDemo();
            AutoMapperAdvanced.GenericHeterogeneousList();

            #endregion
            End();

            #region ++++++++++++++++++ Additional samples, not yet in the book

            Timestamps.ShowUpdatedTimeStamp();
            CachingRelFixup.Demo_RelFixup();
            CachingRelFixup.Demo_FirstLevelCaching();
            ContextEvents.EreignisFolge();
            Threading.EF_MT();

            Queries.Demo_Projection_OneFlight();
            Queries.GeneratedSQL();
            RelationshipFixup.Demo1_PilotBleibtImRAM();
            RelationshipFixup.Demo2_RueckwartigeBeziehung();
            DeleteCascading.EinfachesUpdate();
            FieldMapping.UsePrivateField();

            Updates.EF_ChangeTracking();
            Transactions.TransactionScopeDemo();
            Graph.TrackGraph();
            RelationChange.Demo_FlightAddAndRead();
            Queries.GroupBy_SQL_NonEntityType();
            FirstLevelCache.LocalClear();

            Updates.AddBatch();
            Updates.Batching_Change10Flights();
            ChangeTrackerDemos.EF_ChangeTrackerAuswerten();
            LoadingStrategies.Demo_PreLoading1();
            LoadingStrategies.Demo_EagerLoadingPilotDetails();
            LoadingStrategies.Demo_ExplizitLoadingCustom();
            #endregion
        }