40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
|
#region License
|
||
|
|
||
|
//The contents of this file are subject to the Mozilla Public License
|
||
|
//Version 1.1 (the "License"); you may not use this file except in
|
||
|
//compliance with the License. You may obtain a copy of the License at
|
||
|
//http://www.mozilla.org/MPL/
|
||
|
//Software distributed under the License is distributed on an "AS IS"
|
||
|
//basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||
|
//License for the specific language governing rights and limitations
|
||
|
//under the License.
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
namespace Migrator.Framework.SchemaBuilder
|
||
|
{
|
||
|
public class AddColumnExpression : ISchemaBuilderExpression
|
||
|
{
|
||
|
private IFluentColumn _column;
|
||
|
private string _toTable;
|
||
|
|
||
|
|
||
|
public AddColumnExpression(string toTable, IFluentColumn column)
|
||
|
{
|
||
|
_column = column;
|
||
|
_toTable = toTable;
|
||
|
}
|
||
|
public void Create(ITransformationProvider provider)
|
||
|
{
|
||
|
provider.AddColumn(_toTable, _column.Name, _column.Type, _column.Size, _column.ColumnProperty, _column.DefaultValue);
|
||
|
|
||
|
if (_column.ForeignKey != null)
|
||
|
{
|
||
|
provider.AddForeignKey(
|
||
|
"FK_" + _toTable + "_" + _column.Name + "_" + _column.ForeignKey.PrimaryTable + "_" +
|
||
|
_column.ForeignKey.PrimaryKey,
|
||
|
_toTable, _column.Name, _column.ForeignKey.PrimaryTable, _column.ForeignKey.PrimaryKey, _column.Constraint);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|