本文整理汇总了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());
}
示例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);
}
示例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
//.........这里部分代码省略.........