Linq 检查表是否存在于数据库中,但不存在于模型中
我正在Asp.NETMVC项目中使用实体数据模型框架。我需要检查表是否存在于数据库中,但不存在于模型中。有谁能帮我检查一下控制器级别的测试目的。您没有提到您正在使用的数据库,但我假设它是SQL Server 以下是如何获得表列表:Linq 检查表是否存在于数据库中,但不存在于模型中,linq,asp.net-mvc-2,ado.net,Linq,Asp.net Mvc 2,Ado.net,我正在Asp.NETMVC项目中使用实体数据模型框架。我需要检查表是否存在于数据库中,但不存在于模型中。有谁能帮我检查一下控制器级别的测试目的。您没有提到您正在使用的数据库,但我假设它是SQL Server 以下是如何获得表列表: USE YourDBName GO SELECT * FROM sys.Tables 可以使用Ado.Net运行查询,也可以将表添加到实体数据模型中 更新 这里有一些其他的方法。您可能需要调整它们以适应您的需要 [dbo].[sysobjects]为数据库中创建的
USE YourDBName
GO
SELECT *
FROM sys.Tables
可以使用Ado.Net运行查询,也可以将表添加到实体数据模型中
更新
这里有一些其他的方法。您可能需要调整它们以适应您的需要
[dbo].[sysobjects]为数据库中创建的每个对象(如约束、表、视图、存储过程、函数等)包含一行。要确定对象的类型,您将查询包含对象类型的[xtype]列。对于用户表,[xtype]值为“U”,表示用户表
SELECT [Name] FROM [dbo].[sysobjects]
WHERE [xtype] = 'U'
第二种方法是查询[Information_Schema].[Tables]系统视图。[Information_Schema].[Tables]系统视图包含当前数据库中当前用户具有权限的每个表的一行。此viw基于[dbo].[sysobjects]系统表。[Information_Schema].[Tables]系统视图也将包括列表中的视图。要仅过滤出用户表,您将只输出那些[Table_Type]为“BASE Table”的记录,如以下查询所示:
SELECT * FROM [Information_Schema].[Tables]
WHERE [Table_Type] = 'BASE TABLE'
EXEC sp_tables @table_type = "'TABLE'"
在数据库中列出用户表的第三种方法是使用sp_tables系统存储过程。sp_tables系统存储过程返回可以出现在FROM子句中的对象列表。由于您只关心用户表,而不关心系统表或视图,因此必须将@table_type参数设置为“'table'”,如下查询所示:
SELECT * FROM [Information_Schema].[Tables]
WHERE [Table_Type] = 'BASE TABLE'
EXEC sp_tables @table_type = "'TABLE'"
隐马尔可夫模型。。从您提到的查询中,我们将获得所有表的列表,但是,我只需要获得数据库中而不是模型中的表的列表。我为您更新了答案。如果需要进一步说明,请再次评论。可以或如何在my views.py中导入该表