Browse Source

Data AddIn: Fixed Composite Key FK Cardinality

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4975 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Philipp Maihart 16 years ago
parent
commit
0b89a4d29c
  1. 7
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Constraint.cs
  2. 2
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseDriver.cs
  3. 11
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs
  4. 1
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs

7
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Constraint.cs

@ -123,10 +123,9 @@ namespace ICSharpCode.Data.Core.DatabaseObjects @@ -123,10 +123,9 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
{
IColumn pkColumn = PKColumns.First();
if (pkColumn.IsPrimaryKey && pkColumn.IsForeignKey)
return Cardinality.One;
else
if (pkColumn.IsPrimaryKey)
if (!FKTable.HasCompositeKey && FKColumns.FirstOrDefault(fkColumn => fkColumn.IsPrimaryKey && fkColumn.IsForeignKey) != null)
return Cardinality.ZeroToOne;
else if (pkColumn.IsPrimaryKey)
return Cardinality.Many;
else if (!pkColumn.IsPrimaryKey && !FKColumns.First().IsNullable)
return Cardinality.One;

2
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/DatabaseDriver.cs

@ -93,7 +93,7 @@ namespace ICSharpCode.Data.Core.DatabaseObjects @@ -93,7 +93,7 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
{
#region Fields
private DatabaseObjectsCollection<T> _datasources = null;
private DatabaseObjectsCollection<T> _datasources = new DatabaseObjectsCollection<T>();
#endregion

11
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/DatabaseObjects/Table.cs

@ -72,6 +72,17 @@ namespace ICSharpCode.Data.Core.DatabaseObjects @@ -72,6 +72,17 @@ namespace ICSharpCode.Data.Core.DatabaseObjects
}
}
public bool HasCompositeKey
{
get
{
if (Items.Where(column => column.IsPrimaryKey).Count() > 1)
return true;
else
return false;
}
}
public override bool IsSelected
{
get

1
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core/Interfaces/ITable.cs

@ -17,5 +17,6 @@ namespace ICSharpCode.Data.Core.Interfaces @@ -17,5 +17,6 @@ namespace ICSharpCode.Data.Core.Interfaces
string SchemaName { get; set; }
DatabaseObjectsCollection<IConstraint> Constraints { get; }
bool HasKeyDefined { get; }
bool HasCompositeKey { get; }
}
}

Loading…
Cancel
Save