检查linq中是否存在列

时间:2015-03-18 07:45:56

标签: c# sql-server linq

我有通过LINQ to SQL连接和操作的外部程序数据库。我的问题是,我想支持更广泛的数据库版本,所以我必须检查列是否存在。

我尝试过类似的东西:

      IEnumerable<string> k = db.ExecuteQuery<string>("select column_name from INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME='{0}' and TABLE_NAME='POSIEDZENIA'", column);

它没有给我什么。 k.Count()给出错误:

  

无法多次枚举查询结果

当我通过ToList()将其强制转换为List时,它会给出0计数。

我确定此列存在于datacontext连接的数据库中。

你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

只需删除参数({0})周围的引号。

IEnumerable<string> k = db.ExecuteQuery<string>("select column_name from 
INFORMATION_SCHEMA.COLUMNS where COLUMN_NAME={0} and TABLE_NAME='POSIEDZENIA'", column);

有关详细信息,请访问this msdn article