我有一个方法,我在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库来创建表。
由于
答案 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();
}
但这并没有增加太多价值。 :)