C# 在实体框架SQL中查找列的数据类型

C# 在实体框架SQL中查找列的数据类型,c#,sql,entity-framework,sqldatatypes,C#,Sql,Entity Framework,Sqldatatypes,我需要将SQL表中的整型列更改为十进制列 我认为,在做出这样的更改之前,我应该了解是否已经进行了更改,为此我执行了以下代码: var varx=context.Database.ExecuteSqlCommand(“从信息_SCHEMA.COLUMNS中选择COLUMN_NAME='COLUMN_NAME',其中DATA_TYPE='decimal'和TABLE_NAME='TABLE_NAME'”)如果可以连接到Microsoft SQL Server Management Studio,则

我需要将SQL表中的整型列更改为十进制列

我认为,在做出这样的更改之前,我应该了解是否已经进行了更改,为此我执行了以下代码:


var varx=context.Database.ExecuteSqlCommand(“从信息_SCHEMA.COLUMNS中选择COLUMN_NAME='COLUMN_NAME',其中DATA_TYPE='decimal'和TABLE_NAME='TABLE_NAME'”)如果可以连接到Microsoft SQL Server Management Studio,则可以在窗口左侧的“对象资源管理器”中,转到要更改的表,展开该表,然后在“列”文件夹中可以看到所有列及其类型

或者,正如@đěěxěŕ所说,您可以首先自行执行该查询,并查看它实际返回的内容,这是一个解决方案:


int n=context.Database.SqlQuery(“从信息_SCHEMA.COLUMNS中选择COUNT(*),其中数据_TYPE='int'和表_NAME='my_TABLE',列_NAME='COLUMN NAME')。ToList().FirstOrDefault()您是否自行运行了select,它生成了什么?另外
SELECT COLUMN\u NAME='COLUMN\u NAME'
没有做你认为它在做的事情;因此,它返回
-1
,因为没有任何行受到影响。可能
从信息\u架构中选择列\u名称。数据类型为'decimal'且表名称为'TABLE\u NAME'
的列。查询本身是错误的,但仍然不确定您想要什么,您能否更详细地说明?为什么要使用EntityFramework执行此操作?您有数据库优先还是代码优先。更改代码优先数据库上的数据类型是完全不同的事情,使用SQL命令会破坏迁移完整性。我想这样做是因为我在Visual Studio中使用EntityFramework完成了一个完整的项目,但我已经完成了。我已经公布了我的答案。