使用Enterprise Library创建表

时间:2011-03-18 09:52:30

标签: c# enterprise-library

我有一个方法,我在DB中创建一个表,如下所示,

public void CreateTable(List<string> columnNames, string tableName)
{
  string connectionString = Utility.ReadDataFromConfig("ConnectionTest");

  using (var connection = new SqlConnection(connectionString))
  {
    var server = new Server(new ServerConnection(connection));
    var db = server.Databases["GlassLookUp"];
    var newTable = new Table(db, tableName);
    var idColumn = new Column(newTable, "ID") { DataType = DataType.Int, Nullable = false };
    newTable.Columns.Add(idColumn);
    foreach (var titleColumn in from temp in columnNames
                  where temp != string.Empty
                  select new Column(newTable, temp) { DataType = DataType.VarChar(500), Nullable = true })
    {
      newTable.Columns.Add(titleColumn);
    }
    newTable.Create();
  }
}

我希望更改上述方法,以便使用Enterprise库。我已经使用Enterprise库来执行存储过程,但我不知道如何使用Enterprise库来创建表。

由于

1 个答案:

答案 0 :(得分:1)

您的代码似乎正在使用SQL Server Management Objects (SMO)。我认为您不能以有用的方式使用SMO与企业库数据访问应用程序块。您可以做的最好的事情是获得连接:

public void CreateTable(List<string> columnNames, string tableName)
{
    Database database = DatabaseFactory.CreateDatabase("ConnectionTest");
    string connectionString = database.ConnectionString;

    //...
    newTable.Create();
}

但这并没有增加太多价值。 :)