проблема с [SqlException (0x80131904): неверное имя объекта 'dbo.TableName'.] - PullRequest
2 голосов
/ 16 мая 2011

Я искал в google и stackoverflow и не нашел ответа. Как я могу подключиться к своей таблице базы данных через эту строку подключения в VS 2010?

<add 
  name="ArticleDBContext" 
  connectionString="Data Source=mssql3.webio.pl,2401;Initial Catalog=db_name;Persist Security Info=True;User ID=db_user;Password=passwd;Pooling=False"
  providerName="System.Data.SqlClient"
 />

Я всегда получаю сообщение об ошибке: проблема с [SqlException (0x80131904): неверное имя объекта 'dbo.TableName'.]

Я знаю, что 'dbo' это SCHEMA, мне это не нужно, как я могу это изменить?

я использую mvc и EntityFramework

и код такой:

в моделях:

public class Article
{
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime CreateDate { get; set; }
    public string tekst { get; set; }
}

public class ArticleDBContext : DbContext
{
    public DbSet<Article> Articles { get; set; }
}

и в контроллере:

public ViewResult Index()
    {
        return View(db.Articles.ToList());
    }

пример взят из http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs

1 Ответ

2 голосов
/ 17 мая 2011

Я нашел этот ответ, и это помогло!

источник: http://blogs.x2line.com/al/articles/155.aspx

MSSQL: изменить владельца таблиц на dbo с помощью sp_changeobjectowner

Иногда возникает необходимость изменить все таблицы в базе данныхбыть владельцем dbo для обслуживания или устранения случайных ошибок.Все таблицы, принадлежащие схеме dbo, обычно являются лучшими практиками при разработке приложений баз данных с использованием MSSQL, в то время как в реальной жизни мы можем встретить разные подходы ...

Следующий небольшой фрагмент кода SQL проходит через все пользовательские таблицы в базе данных именяет своего владельца на dbo.Используется системная хранимая процедура sp_changeobjectowner:

DECLARE tabcurs CURSOR
FOR
SELECT 'SOMEOWNER.' + [name]
  FROM sysobjects
 WHERE xtype = 'u'

OPEN tabcurs
DECLARE @tname NVARCHAR(517)
FETCH NEXT FROM tabcurs INTO @tname

WHILE @@fetch_status = 0
BEGIN

EXEC sp_changeobjectowner @tname, 'dbo'

FETCH NEXT FROM tabcurs INTO @tname
END
CLOSE tabcurs
DEALLOCATE tabcurs
...