用 Entity Framework 找出 SQL 中列的数据类型

Find out the data type of a column in SQL with Entity Framework

我需要将 SQL table 中的整数列更改为小数列。

我觉得在做这样的改变之前,我应该先看看之前是否做过改变,为此我执行了下面的代码:

var varx = context.Database.ExecuteSqlCommand("SELECT COLUMN_NAME = 'column_name' FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'decimal' AND TABLE_NAME = 'table_name'");

但是不管列已经是小数还是整数,varx总是等于-1

欢迎提出任何建议或意见。

如果您可以连接到 Microsoft SQL Server Management Studio,您可以查看 window 的左侧,在对象资源管理器中,转到您要查找的 table更改、展开它,然后在列文件夹中您可以看到所有列及其类型。

或者,正如@Çöđěxěŕ 所说,您可以先自行执行该查询,然后查看实际情况 returns

这是一个解决方案:

int n = context.Database.SqlQuery<int>("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS where DATA_TYPE = 'int' AND TABLE_NAME = 'my_table' AND COLUMN_NAME = 'column name'").ToList().FirstOrDefault();

如果table中有int类型的元素,

n等于1,没有则为0。