Подтвердить что ты не робот

System.Data.SqlClient.SqlException: недопустимое имя объекта 'dbo.Projects'

My MVC-приложение возвращает SqlExceptions при попытке доступа к любой таблице в моей базе данных.

Сведения об исключении: System.Data.SqlClient.SqlException: недопустимое имя объекта 'dbo.Projects'.

Мое приложение us linq для слоя данных.

Если я использую старую dll, она отлично работает (так что это не похоже на проблему с БД) именно эту последнюю DLL-версию приложения, которую я загрузил.

подробности

[SqlException (0x80131904): Недопустимое имя объекта 'dbo.Projects'.]
System.Data.SqlClient.SqlConnection.OnError(исключение SqlException, Boolean breakConnection) +1950890
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException исключение, Boolean breakConnection) +4846875
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
System.Data.SqlClient.SqlDataReader.get_MetaData() +83
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String метод, результат DbAsyncResult) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String метод) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior поведение, метод String) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior поведение) +12 System.Data.Common.DbCommand.ExecuteReader() +12
System.Data.Linq.SqlClient.SqlProvider.Execute(запрос выражения, QueryInfo queryInfo, IObjectReaderFactory factory, Object [] parentArgs, Object [] userArgs, ICompiledSubQuery [] subQueries, Object lastResult) +975
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(запрос выражения, QueryInfo [] queryInfos, IObjectReaderFactory factory, Object [] userArguments, ICompiledSubQuery [] subQueries) +113
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression запрос) +344
System.Data.Linq.DataQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +35 System.Linq.Buffer 1..ctor(IEnumerable 1 source) +247 System.Linq.<GetEnumerator>d__0.MoveNext() +108
System.Linq.Buffer
1..ctor(IEnumerable 1 source) +259
System.Linq.<GetEnumerator>d__0.MoveNext() +108
System.Collections.Generic.List
1..ctor(IEnumerable 1 collection) +7665172 System.Linq.Enumerable.ToList(IEnumerable 1 источник) +61 Mezza_crm.Controllers.ProjectsController.GetProjectList( NameValueCollection) в C:\mezza_crm\mezza_crm\Controllers\ProjectsController.cs: 164 Mezza_crm.Controllers.ProjectsController.List() в C:\mezza_crm\mezza_crm\Контроллеры\ProjectsController.cs: 53
lambda_method (ExecutionScope, ControllerBase, Object []) +39
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase контроллер, объект []) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) +178
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 параметры) +24
System.Web.Mvc <. > C__DisplayClassa.b__7() +52 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter фильтр, ActionExecutingContext preContext, Func 1 continuation) +254
System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1 фильтр, ActionDescriptor actionDescriptor, IDictionary`2) +192
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +399
System.Web.Mvc.Controller.ExecuteCore() +126
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +27 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7
System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +151 System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +57
System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, Boolean & завершен синхронно) +75

4b9b3361

Ответ 1

Проверьте параметр Initial Catalog в строке подключения. Возможно, что ваш код ищет неправильную базу данных для объекта Projects.

Например, если у вас установлена ​​синхронизация базы данных таким образом, что переносится только подмножество таблиц главной базы данных, вы можете столкнуться с этой ошибкой, если Linq to SQL ожидает, что все таблицы будут в базе данных, на которые указывает строка подключения.

Ответ 2

У вас есть доступ к SQL Server, который вы запрашиваете? Вы видите таблицу или вид с именем dbo.Projects? Если нет, это будет хорошее место для просмотра.

Linq to SQL создает карту объектов между базой данных и приложением. Если ваша новая DLL, которую вы развертываете, больше не совпадает с базой данных, то это именно та ошибка, которую вы ожидаете получить.

Возможно, у вас есть разные схемы базы данных между вашей средой разработки и средой развертывания?

Ответ 3

Это может быть связано с неправильным именем таблицы, из которой вы выбираете данные. Пожалуйста, проверьте имя таблицы, которую вы упомянули в файле asmx, и таблицу, созданную в базе данных.

Ответ 4

Причиной этой проблемы может быть настройка свойств базы данных (Sql2008R2 с .NET4).

  • Проблема может быть воспроизведена по желанию при изменении значения COLLATION базы данных.

Чтобы отобразить COLLLATION, используйте Sql Server Mgmt Studio.

  • Щелкните правой кнопкой мыши базу данных и выберите "Свойства" → "Общие". Затем посмотрите "Обслуживание" для значения COLLATION

Для изменения COLLATION (по-прежнему) используйте Sql Server Mgmt Studio.

  • Щелкните правой кнопкой мыши базу данных и выберите "Свойства → Параметры", оттуда вы можете изменить значение COLLATION

Ответ 5

Если вы находитесь на той стадии разработки, где у вас есть метод внутри вашего класса контекста, который создает для вас тестовые данные, не вызывайте его в своем конструкторе, он попытается создать эти тестовые записи, пока у вас нет таблиц все же. Просто поделитесь своей ошибкой...

Ответ 6

Если вы используете две базы данных, вы можете добавить еще один DataClasses.dbml и сопоставить в нее вторую базу данных.
Он работает.

Ответ 7

Удалить таблицу _MigrationHistory в (yourdatabseName > Tables > System Tables), если у вас уже есть в вашей базе данных, а затем выполнить команду ниже в консоли диспетчера пакетов

PM> update-database

Ответ 8

У меня была такая же ошибка. Дело в том, что я создал таблицу с неправильной схемой (она должна быть [dbo]). Я сделал следующие шаги:

  • Я сбросил все таблицы, у которых нет префикса "dbo."

  • Я создал и запустил этот запрос:

CREATE TABLE dbo.Cars(IDCar int PRIMARY KEY NOT NULL,Name varchar(25) NOT NULL,    
CarDescription text NULL)
GO

Ответ 9

Проблема была в том, что я создал базу данных в своей локальной базе данных.
Если это так, то вы должны написать так, как показано ниже:

    "SELECT * FROM <DatabaseName>.[dbo].[Projects]"

Замените на имя вашей базы данных.
Вы также можете опустить "[]"

Ответ 10

enter image description here

Я видел, что новые версии, когда вы определяете получившиеся сущности, лучше определяют их следующим образом, если вы обрабатываете другую схему, у меня была похожая проблема

Вы должны добавить System.ComponentModel.DataAnnotations.Schema

using System.ComponentModel.DataAnnotations.Schema;


 [Table("InstitucionesMilitares", Schema = "configuracion")]