Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何检查表是否存在于模型中而不存在于数据库中_Sql Server_Asp.net Mvc_Linq To Sql_Asp.net Mvc 2 - Fatal编程技术网

Sql server 如何检查表是否存在于模型中而不存在于数据库中

Sql server 如何检查表是否存在于模型中而不存在于数据库中,sql-server,asp.net-mvc,linq-to-sql,asp.net-mvc-2,Sql Server,Asp.net Mvc,Linq To Sql,Asp.net Mvc 2,我从数据库中提取了一个模型。后来,我从数据库中删除了表,但没有更新模型。现在,我应该执行一个测试来测试表是否存在于模型中,而不存在于数据库中。有谁能告诉我如何使用代码检查这个问题吗?好吧,一个快速而简单的方法可能是尝试使用模型和Linq to Sql在表中插入或选择一些内容,然后检查是否引发了SQLException。我不确定您是否可以捕获异常中的任何特定内容,如SQLTableDoesNotExisteException,但在调试器中应该很容易看到抛出的异常是否有任何特定属性,您可以区分其他S

我从数据库中提取了一个模型。后来,我从数据库中删除了表,但没有更新模型。现在,我应该执行一个测试来测试表是否存在于模型中,而不存在于数据库中。有谁能告诉我如何使用代码检查这个问题吗?

好吧,一个快速而简单的方法可能是尝试使用模型和Linq to Sql在表中插入或选择一些内容,然后检查是否引发了SQLException。我不确定您是否可以捕获异常中的任何特定内容,如SQLTableDoesNotExisteException,但在调试器中应该很容易看到抛出的异常是否有任何特定属性,您可以区分其他SQLException

您可以连接到数据库并获取schema.Tables表中的信息,然后检查您希望的所有表是否都在其中

要获取Linq To Sql DataContext使用的所有表,请执行以下操作:

var dataContext = new DataContext();
var dataContextTableNames = (from tables in dataContext.Mapping.GetTables()
                             select tables.TableName).ToList();

然后使用您选择的sql方法,在数据库上运行“从[Information\u Schema].[Tables]中选择[TABLE\u NAME],并将其与DataContext中的比较。

Hmm。。看起来您正在尝试编写新的测试。在删除这些表之前,是否首先要进行集成测试来验证表和实体的交互


一旦从数据库中删除表,这些集成测试就会失败。

您想实现什么?这就是我要寻找的。ThanksIt可以很好地使用Linq2SQL,但我们无法在实体框架中获取.mapping.gettables()。你能告诉我EF中对应的方法是什么吗?对不起,库马尔,我真的没有实体框架的经验。您必须了解如何从其他地方获取实体表。