当前位置: 首页>>代码示例>>C#>>正文


C# Table.AddPrimaryKey方法代码示例

本文整理汇总了C#中Table.AddPrimaryKey方法的典型用法代码示例。如果您正苦于以下问题:C# Table.AddPrimaryKey方法的具体用法?C# Table.AddPrimaryKey怎么用?C# Table.AddPrimaryKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Table的用法示例。


在下文中一共展示了Table.AddPrimaryKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: EntityHasMultivalueAttribute

 /// <summary>
 /// Xử lý entity có thuộc tính đa trị -> Kết quả tạo ra hai Table và đưa vào Physical Model
 /// </summary>
 /// <param name="table">Table có thuộc tính Multivalue</param>
 /// <param name="multiAttribute">Thuộc tính Multivalue (kiểu AttributeData)</param>
 private void EntityHasMultivalueAttribute(Table table, AttributeData multiAttribute)
 {
     Table multivalueTable = new Table(table.name + "_" + multiAttribute.name.ToUpper(), multiAttribute.x, multiAttribute.y, multiAttribute.w, multiAttribute.h);
     multivalueTable.AddPrimaryKeyForeignKey(table.GetPrimaryKey());
     multivalueTable.AddPrimaryKey(multiAttribute.name, multiAttribute.DataType, multiAttribute.Length, multiAttribute.Description);
     mdp.AddTable(multivalueTable);
     mdp.AddForeignKey("fk_" + table.name, table, table.GetPrimaryKey(), multivalueTable, table.GetPrimaryKey());
 }
开发者ID:rsuneja,项目名称:erdesigner,代码行数:13,代码来源:GeneratePhysicalModel.cs

示例2: ProcessTernary

        /// <summary>
        /// Xử lý các trường hợp mối liên kết ba ngôi: 1-1-1, 1-1-n, 1-n-m, n-m-l, associative entity
        /// Lưu ý: Thứ tự t1,t2,t3 ảnh hưởng/tác dụng tới từng trường hợp cụ thể
        ///     1-1-1: t1,t2,t3   |   
        ///     1-1-n: t3,t1,t2   |   
        ///     1-n-1: t2,t1,t3   |   
        ///     n-1-1: t1,t2,t3   |   
        ///     1-n-m: t2,t3,t1   |   
        ///     n-1-m: t1,t3,t2   |   
        ///     n-m-1: t1,t2,t3   |   
        ///     n-m-l: t1,t2,t3,true   |   
        ///     associative entity: t1,t2,t3,true   |   
        /// </summary>
        /// <param name="t1">Table 1 trong Relationship Ternary</param>
        /// <param name="t2">Table 2 trong Relationship Ternary</param>
        /// <param name="t3">Table 3 trong Relationship Ternary</param>
        /// <param name="f"> default : FALSE, f = true trường hợp n-m-l, f = false các trường hợp còn lại</param>        
        private void ProcessTernary(RelationshipData rd, string nameRelationship, Table t1, Table t2, Table t3, bool f)
        {
            List<Column> pk1 = t1.GetPrimaryKey();
            List<Column> pk2 = t2.GetPrimaryKey();
            List<Column> pk3 = t3.GetPrimaryKey();

            bool hasPrimaryKey = false;

            Table t4 = new Table(nameRelationship, rd.x, rd.y, rd.w, rd.h);
            AttributeData mulAttribute = new AttributeData();
            foreach (AttributeData ad in rd.Attributes)
            {
                //Composite Attribute
                if (ad.AttributeChilds.Count > 0)
                {
                    foreach (AttributeData adChild in ad.AttributeChilds)
                        t4.AddColumn(adChild);
                }
                else
                {
                    if (ad.type == AttributeType.Simple)
                    {
                        Column c = new Column(ad.name, ad.DataType, ad.Length, ad.AllowNull, ad.Description);
                        t4.AddColumn(c);
                    }
                    if (ad.type == AttributeType.Key)
                    {
                        hasPrimaryKey = true;
                        Column c = new Column(ad.name, ad.DataType, ad.Length, ad.AllowNull, true, false, ad.Description);
                        t4.AddPrimaryKey(c);
                    }
                    if (ad.type == AttributeType.MultiValued)
                        mulAttribute = ad;
                }
            }

            if (hasPrimaryKey)
            {
                t4.AddColumnFK(pk1);
                t4.AddColumnFK(pk2);
                t4.AddColumnFK(pk3);
            }
            else
            {
                t4.AddPrimaryKeyForeignKey(pk1);
                t4.AddPrimaryKeyForeignKey(pk2);
                if (f)
                    t4.AddPrimaryKeyForeignKey(pk3);
                else
                    t4.AddColumnFK(pk3);
            }

            mdp.AddTable(t4);
            mdp.AddForeignKey(nameRelationship + "1", t1, pk1, t4, pk1);
            mdp.AddForeignKey(nameRelationship + "2", t2, pk2, t4, pk2);
            mdp.AddForeignKey(nameRelationship + "3", t3, pk3, t4, pk3);

            //Xử lý trường hợp Multivalue
            if (mulAttribute.name != String.Empty)
                EntityHasMultivalueAttribute(t4, mulAttribute);
        }
开发者ID:rsuneja,项目名称:erdesigner,代码行数:78,代码来源:GeneratePhysicalModel.cs

示例3: Process

        public void Process()
        {
            PreProcess();

            #region Variables
            List<string> entityHadCreated = new List<string>();
            #endregion

            #region EERD
            foreach (SubTypeConnectorData st in erd.SubTypeConnectors)
            {
                string supperTypeName = st.SuperType;
                List<string> listSubTypeName = new List<string>();
                List<string> listDiscriminators = new List<string>();
                foreach (string sub in st.SubTypes)
                    listSubTypeName.Add(sub);
                foreach (string dis in st.Discriminators)
                    listDiscriminators.Add(dis);

                //Tạo Table SupperType
                if (!SearchInList(entityHadCreated, supperTypeName))
                {
                    EntityData entityData = SearchEntityData(supperTypeName);
                    mdp.ConvertEntityStrongToTable(entityData);
                    entityHadCreated.Add(supperTypeName);
                }

                //Tạo Table SubType
                foreach (string subTypeName in listSubTypeName)
                {
                    if (!SearchInList(entityHadCreated, subTypeName))
                    {
                        EntityData subEntity = SearchEntityData(subTypeName);
                        mdp.ConvertEntityStrongToTable(subEntity);
                        entityHadCreated.Add(subTypeName);
                    }
                }

                //Add thuộc tính SupperType vào SubType
                Table supperTable = mdp.SearchTable(supperTypeName);
                List<Column> listPK = supperTable.GetPrimaryKey();

                for (int i = 0; i < listSubTypeName.Count; i++)
                {
                    string subTypeName = listSubTypeName[i];
                    Table subTable = mdp.SearchTable(subTypeName);
                    if (st.Discriminators.Count > 0)
                    {
                        List<Column> listPkNew = new List<Column>();
                        foreach (Column c in listPK)
                        {
                            Column tempColumn = new Column();
                            tempColumn.Name = listDiscriminators[i].ToUpper() + "_" + c.Name;
                            tempColumn.DataType = c.DataType;
                            tempColumn.Length = c.Length;
                            tempColumn.AlowNull = c.AlowNull;
                            tempColumn.Description = c.Description;
                            tempColumn.PrimaryKey = c.PrimaryKey;
                            tempColumn.ForeignKey = c.ForeignKey;
                            listPkNew.Add(tempColumn);
                        }
                        subTable.AddPrimaryKeyForeignKey(listPkNew);
                    }
                    else
                        subTable.AddPrimaryKeyForeignKey(listPK);
                    mdp.AddForeignKey("fk_" + supperTypeName, supperTable, listPK, subTable, listPK);
                }
            }
            #endregion

            #region Entities
            foreach (EntityData ed in erd.Entities)
            {
                //Kiểm tra coi Entity thuộc loại nào
                //Tiến hành xử lý , Entity Strong, Entity Weak
                //Entity Strong: Normal, Has Composite Attribute, Has MultiValue Attribute.

                #region EntityStrong
                if (ed.type == EntityType.Strong)//Entity Strong
                {
                    //Kiểm tra Entity này tạo thành Table chưa, nếu chưa mới thực hiện
                    if (!SearchInList(entityHadCreated, ed.name))
                    {
                        mdp.ConvertEntityStrongToTable(ed);
                        entityHadCreated.Add(ed.name);
                    }
                }
                #endregion

                #region EntityWeak
                if (ed.type == EntityType.Weak)//Entity Weak
                {

                    string nEntityWeak = ed.name;
                    string nEntityParent = SearchEntityParent(nEntityWeak);

                    //Kiểm tra xem thằng Parent có tồn tại hay chưa
                    //Nếu chưa thì phải tạo Parent trước
                    //Sau đó tạo Weak

//.........这里部分代码省略.........
开发者ID:rsuneja,项目名称:erdesigner,代码行数:101,代码来源:GeneratePhysicalModel.cs


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