• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# Schema.DocumentMapping类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中Marten.Schema.DocumentMapping的典型用法代码示例。如果您正苦于以下问题:C# DocumentMapping类的具体用法?C# DocumentMapping怎么用?C# DocumentMapping使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DocumentMapping类属于Marten.Schema命名空间,在下文中一共展示了DocumentMapping类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: generating_code_and_sql_for_hierarchy_smoke_Tests_on_other_database_schema

 public generating_code_and_sql_for_hierarchy_smoke_Tests_on_other_database_schema()
 {
     theHierarchy = DocumentMapping.For<Squad>("other");
     theHierarchy.AddSubClass(typeof(BasketballTeam));
     theHierarchy.AddSubClass(typeof(BaseballTeam));
     theHierarchy.AddSubClass(typeof(FootballTeam));
 }
开发者ID:nieve,项目名称:marten,代码行数:7,代码来源:generating_code_and_sql_for_hierarchy_smoke_Tests.cs


示例2: SubClassMapping

 public SubClassMapping(Type documentType, DocumentMapping parent, string alias = null)
 {
     DocumentType = documentType;
     _inner = new DocumentMapping(documentType);
     _parent = parent;
     Alias = alias ?? documentType.GetTypeName().Replace(".", "_").SplitCamelCase().Replace(" ", "_").ToLowerInvariant();
 }
开发者ID:jimbono,项目名称:marten,代码行数:7,代码来源:SubClassMapping.cs


示例3: GenerateDocumentStorageCode

        public static string GenerateDocumentStorageCode(DocumentMapping[] mappings)
        {
            var writer = new SourceWriter();

            // TODO -- get rid of the magic strings
            var namespaces = new List<string> {"System", "Marten", "Marten.Schema", "Marten.Linq", "Marten.Util", "Npgsql", "Remotion.Linq"};
            namespaces.AddRange(mappings.Select(x => x.DocumentType.Namespace));

            namespaces.Distinct().OrderBy(x => x).Each(x => writer.WriteLine($"using {x};"));
            writer.BlankLine();

            writer.StartNamespace("Marten.GeneratedCode");

            mappings.Each(x =>
            {
                x.GenerateDocumentStorage(writer);
                writer.BlankLine();
                writer.BlankLine();
            });

            writer.FinishBlock();

            var code = writer.Code();
            return code;
        }
开发者ID:jjchiw,项目名称:Marten,代码行数:25,代码来源:DocumentStorageBuilder.cs


示例4: generating_code_and_sql_for_hierarchy_smoke_Tests

 public generating_code_and_sql_for_hierarchy_smoke_Tests()
 {
     theHierarchy = DocumentMapping.For<Squad>();
     theHierarchy.AddSubClass(typeof (BasketballTeam));
     theHierarchy.AddSubClass(typeof (BaseballTeam));
     theHierarchy.AddSubClass(typeof (FootballTeam));
 }
开发者ID:,项目名称:,代码行数:7,代码来源:


示例5: CreateSchema

        public void CreateSchema(IDocumentSchema schema, DocumentMapping mapping)
        {
            var writer= new StringWriter();
            mapping.WriteSchemaObjects(schema, writer);

            _runner.Execute(writer.ToString());
        }
开发者ID:jjchiw,项目名称:Marten,代码行数:7,代码来源:DevelopmentSchemaCreation.cs


示例6: ParseWhereFragment

        public IWhereFragment ParseWhereFragment(DocumentMapping mapping, Expression expression)
        {
            if (expression is BinaryExpression)
            {
                return GetWhereFragment(mapping, expression.As<BinaryExpression>());
            }

            if (expression.NodeType == ExpressionType.Call)
            {
                return GetMethodCall(mapping, expression.As<MethodCallExpression>());
            }

            if (expression is MemberExpression && expression.Type == typeof (bool))
            {
                var locator = JsonLocator(mapping, expression.As<MemberExpression>());
                return new WhereFragment("{0} = True".ToFormat(locator), true);
            }

            if (expression.NodeType == ExpressionType.Not)
            {
                return GetNotWhereFragment(mapping, expression.As<UnaryExpression>().Operand);
            }

            if (expression is SubQueryExpression)
            {
                return GetWhereFragment(mapping, expression.As<SubQueryExpression>());
            }

            throw new NotSupportedException();
        }
开发者ID:kiliman,项目名称:marten,代码行数:30,代码来源:MartenExpressionParser.cs


示例7: ComputedIndex

 public ComputedIndex(DocumentMapping mapping, MemberInfo[] members)
 {
     _members = members;
     var field = mapping.FieldFor(members);
     _locator = field.SqlLocator.Replace("d.", "");
     _table = mapping.Table;
 }
开发者ID:phillip-haydon,项目名称:marten,代码行数:7,代码来源:ComputedIndex.cs


示例8: Build

        public static IEnumerable<IDocumentStorage> Build(IDocumentSchema schema, DocumentMapping[] mappings)
        {
            var code = GenerateDocumentStorageCode(mappings);

            var generator = new AssemblyGenerator();
            generator.ReferenceAssembly(Assembly.GetExecutingAssembly());
            generator.ReferenceAssemblyContainingType<NpgsqlConnection>();
            generator.ReferenceAssemblyContainingType<QueryModel>();
            generator.ReferenceAssemblyContainingType<DbCommand>();
            generator.ReferenceAssemblyContainingType<Component>();

            mappings.Select(x => x.DocumentType.Assembly).Distinct().Each(assem => generator.ReferenceAssembly(assem));

            var assembly = generator.Generate(code);

            return assembly
                .GetExportedTypes()
                .Where(x => x.IsConcreteTypeOf<IDocumentStorage>())
                .Select(x =>
                {
                    var docType =
                        x.FindInterfaceThatCloses(typeof (IdAssignment<>)).GetGenericArguments().Single();

                    var mapping = mappings.Single(m => m.DocumentType == docType);

                    var arguments = mapping.IdStrategy.ToArguments().Select(arg => arg.GetValue(schema)).ToArray();

                    var ctor = x.GetConstructors().Single();

                    return ctor.Invoke(arguments).As<IDocumentStorage>();
                });
        }
开发者ID:danbarua,项目名称:Marten,代码行数:32,代码来源:DocumentStorageBuilder.cs


示例9: Build

        public static IEnumerable<IDocumentStorage> Build(IDocumentSchema schema, DocumentMapping[] mappings)
        {
            // Generate the actual source code
            var code = GenerateDocumentStorageCode(mappings);

            var generator = new AssemblyGenerator();

            // Tell the generator which other assemblies that it should be referencing 
            // for the compilation
            generator.ReferenceAssembly(Assembly.GetExecutingAssembly());
            generator.ReferenceAssemblyContainingType<NpgsqlConnection>();
            generator.ReferenceAssemblyContainingType<QueryModel>();
            generator.ReferenceAssemblyContainingType<DbCommand>();
            generator.ReferenceAssemblyContainingType<Component>();
            generator.ReferenceAssemblyContainingType<DbDataReader>();

            mappings.Select(x => x.DocumentType.Assembly).Distinct().Each(assem => generator.ReferenceAssembly(assem));

            // build the new assembly -- this will blow up if there are any
            // compilation errors with the list of errors and the actual code

            var assembly = generator.Generate(code);

            return assembly
                .GetExportedTypes()
                .Where(x => x.IsConcreteTypeOf<IDocumentStorage>())
                .Select(x => BuildStorageObject(schema, mappings, x));
        }
开发者ID:nieve,项目名称:marten,代码行数:28,代码来源:DocumentStorageBuilder.cs


示例10: UpsertFunction

        public UpsertFunction(DocumentMapping mapping)
        {
            if (mapping == null) throw new ArgumentNullException(nameof(mapping));

            _functionName = mapping.UpsertFunction;
            _tableName = mapping.Table;
            _primaryKeyConstraintName = "pk_" + mapping.Table.Name;

            var idType = mapping.IdMember.GetMemberType();
            var pgIdType = TypeMappings.GetPgType(idType);

            Arguments.Add(new UpsertArgument
            {
                Arg = "docId",
                PostgresType = pgIdType,
                Column = "id",
                Members = new[] {mapping.IdMember}
            });
            Arguments.Add(new UpsertArgument
            {
                Arg = "doc",
                PostgresType = "JSONB",
                DbType = NpgsqlDbType.Jsonb,
                Column = "data",
                BulkInsertPattern = "writer.Write(serializer.ToJson(x), NpgsqlDbType.Jsonb);",
                BatchUpdatePattern = "*"
            });
        }
开发者ID:,项目名称:,代码行数:28,代码来源:


示例11: Modify

        public override void Modify(DocumentMapping mapping, MemberInfo member)
        {
            var fkDefinition = mapping.AddForeignKey(member.Name, _referenceType);
            mapping.AddIndex(fkDefinition.ColumnName);
            

        }
开发者ID:JasperFx,项目名称:marten,代码行数:7,代码来源:ForeignKeyAttribute.cs


示例12: SingleFieldSelectorTests

        public SingleFieldSelectorTests()
        {
            theMapping = DocumentMapping.For<User>();
            var prop = ReflectionHelper.GetProperty<User>(x => x.FirstName);

            theSelector = new SingleFieldSelector<string>(theMapping, new MemberInfo[] {prop});
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:7,代码来源:SingleFieldSelectorTests.cs


示例13: SchemaDiff

        public SchemaDiff(IDocumentSchema schema, SchemaObjects existing, DocumentMapping mapping)
        {
            if (existing.HasNone())
            {
                AllMissing = true;
            }
            else
            {
                var expectedTable = mapping.ToTable(schema);
                TableDiff = new TableDiff(expectedTable, existing.Table);

                // TODO -- drop obsolete indices?

                mapping.Indexes.Each(index =>
                {
                    if (existing.ActualIndices.ContainsKey(index.IndexName))
                    {
                        var actualIndex = existing.ActualIndices[index.IndexName];
                        if (!index.Matches(actualIndex))
                        {
                            IndexChanges.Add($"drop index {expectedTable.Table.Schema}.{index.IndexName};{index.ToDDL()}");
                        }
                    }
                    else
                    {
                        IndexChanges.Add(index.ToDDL());
                    }
                });

            }

            _existing = existing;
            _mapping = mapping;
            _schema = schema;
        }
开发者ID:,项目名称:,代码行数:35,代码来源:


示例14: BuildStorageObject

        public static IDocumentStorage BuildStorageObject(IDocumentSchema schema, Type storageType, DocumentMapping mapping)
        {
            var arguments = mapping.ToArguments().Select(arg => arg.GetValue(schema)).ToArray();

            var ctor = storageType.GetConstructors().Single();

            return ctor.Invoke(arguments).As<IDocumentStorage>();
        }
开发者ID:nieve,项目名称:marten,代码行数:8,代码来源:DocumentStorageBuilder.cs


示例15: storage_arguments_adds_hierarchy_argument_with_subclasses

        public void storage_arguments_adds_hierarchy_argument_with_subclasses()
        {
            var mapping = new DocumentMapping(typeof(Squad), new StoreOptions());
            mapping.AddSubClass(typeof(FootballTeam));

            mapping.ToArguments().OfType<HierarchyArgument>()
                .Single().Mapping.ShouldBeSameAs(mapping);
        }
开发者ID:jimbono,项目名称:marten,代码行数:8,代码来源:DocumentMappingTests.cs


示例16: CreateSchema

        public void CreateSchema(IDocumentSchema schema, DocumentMapping mapping)
        {
            var className = nameof(StoreOptions);
            var propName = nameof(StoreOptions.AutoCreateSchemaObjects);

            string message = $"No document storage exists for type {mapping.DocumentType.FullName} and cannot be created dynamically unless the {className}.{propName} = true. See http://jasperfx.github.io/marten/documentation/documents/ for more information";
            throw new InvalidOperationException(message);
        }
开发者ID:brianstanforth,项目名称:marten,代码行数:8,代码来源:ProductionSchemaCreation.cs


示例17: generating_code_and_sql_for_hierarchy_smoke_Tests

        public generating_code_and_sql_for_hierarchy_smoke_Tests()
        {
            theHierarchy = new DocumentMapping(typeof(Squad), new StoreOptions());
            theHierarchy.AddSubClass(typeof (BasketballTeam));
            theHierarchy.AddSubClass(typeof (BaseballTeam));
            theHierarchy.AddSubClass(typeof (FootballTeam));

        }
开发者ID:jimbono,项目名称:marten,代码行数:8,代码来源:generating_code_and_sql_for_hierarchy_smoke_Tests.cs


示例18: Modify

 public override void Modify(DocumentMapping mapping, MemberInfo member)
 {
     var field = mapping.DuplicateField(member.Name, PgType);
     var indexDefinition = mapping.AddIndex(field.ColumnName);
     indexDefinition.Method = IndexMethod;
     if (IndexName.IsNotEmpty())
         indexDefinition.IndexName = IndexName;
 }
开发者ID:phillip-haydon,项目名称:marten,代码行数:8,代码来源:DuplicateFieldAttribute.cs


示例19: generate_code

        public void generate_code()
        {
            var mapping = new DocumentMapping(typeof (Target));
            mapping.DuplicateField("Number");
            mapping.DuplicateField("Date");

            var code = DocumentStorageBuilder.GenerateDocumentStorageCode(new[] {mapping});
            Debug.WriteLine(code);
        }
开发者ID:kiliman,项目名称:marten,代码行数:9,代码来源:PlayingTests.cs


示例20: SelectTransformerTests

        public SelectTransformerTests()
        {
            theMapping = DocumentMapping.For<User>();
            theTarget = new TargetObject(typeof(invoking_query_with_select_Tests.User2));
            theTarget.StartBinding(ReflectionHelper.GetProperty<User>(x => x.FirstName)).Members.Add(ReflectionHelper.GetProperty<User2>(x => x.First));
            theTarget.StartBinding(ReflectionHelper.GetProperty<User>(x => x.LastName)).Members.Add(ReflectionHelper.GetProperty<User2>(x => x.Last));

            theSelector = new SelectTransformer<User2>(theMapping, theTarget);
        }
开发者ID:danielmarbach,项目名称:marten,代码行数:9,代码来源:SelectTransformerTests.cs



注:本文中的Marten.Schema.DocumentMapping类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Massive.DynamicRepository类代码示例发布时间:2022-05-26
下一篇:
C# MarkdownSharp.Markdown类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap