1

刚刚在我的博客上发现了一些实时错误,我不知道它们为什么会发生。如果你想看到完整的大丑消息就去这里

给我问题的代码是这样的:

    NerdlyContext db = new NerdlyContext();
    public IEnumerable<Post> GetIndexPage(int? page)
    {
        int pageSize = 5;
        int pageNumber = (page ?? 1);
        var posts = from p in db.Posts
                    where p.Published == true && p.Archived == false
                    orderby p.DateCreated descending
                    select p;
        var result = posts.ToPagedList(pageNumber, pageSize);
        return result;
    }

我试图查看测试是我在做一个快速的 db.Posts.FirstorDefault() 以查看它是否得到任何东西,但它似乎根本没有击中我的数据库。我在SSMS中打开了数据库,所有数据都是一样的。我托管在 discountasp.net 上,并重新复制了确切的连接字符串,以确保没有意外更改。还是行不通。我最近所做的唯一更改是我尝试添加更多 dbset 项目,但是由于包管理控制台上的错误,所以我撤消了所有更改,重建了解决方案,现在我得到了这个..

更新

深入挖掘它实例化我的 DbContext 时,它说更改跟踪器正在引发错误。

4

3 回答 3

1

可能是连接字符串的问题。您是否在 DBContext 类的构造函数中指定了连接字符串,如下所示:

public class YourContext : DbContext 
        { 

            public YourContext () : base("YourConnection")
            {

            }

//DBSets here
        }

“YourConnection”在 web.config 中设置:

<connectionStrings>
    <add name="YourConnection" providerName="System.Data.SqlClient" connectionString="....." />
  </connectionStrings>
于 2012-07-14T04:42:11.963 回答
1

您的连接字符串是否正确?

你可以设置断点并检查 db.Posts 吗?您应该能够深入查看查询和连接字符串。也许这可以为您指明正确的方向。

于 2012-07-14T04:37:22.290 回答
0

好的,所以我和你们所有人都认为这是一个连接字符串问题。不过这些都很好。

  1. 我最终做的是从项目中删除我以前的所有迁移类。
  2. 从我的数据库中删除了 MigrationsHistory 文件夹。
  3. 将迁移的配置更改为自动迁移
  4. 重新运行更新数据库命令。(它给了我一个错误说帖子已经存在)
  5. 然后完全没有信心,我重新运行它并繁荣,我的数据又回来了

那为什么它现在起作用了?我一点头绪都没有。。

于 2012-07-14T05:25:14.497 回答