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

接続文字列は正しいですか?

ブレークポイントを設定して db.Posts を検査できますか? ドリルインして、クエリと接続文字列の両方を確認できるはずです。おそらく、それはあなたを正しい方向に向けることができます。

于 2012-07-14T04:37:22.290 に答える
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 に答える
0

さて、これは接続文字列の問題であると考えている皆さんと一緒に、私は正しかった. それらはすべて大丈夫でした。

  1. 私がやったことは、以前のすべての移行クラスをプロジェクトから削除することでした。
  2. データベースから MigrationsHistory フォルダーを削除しました。
  3. 移行の構成を自動移行に変更する
  4. Update-Database コマンドを再実行してください。(投稿が既に存在するというエラーが表示されました)
  5. その後、まったく信頼せずに再実行し、ブーム、データが戻ってきました

では、なぜ今それが機能するのでしょうか?私はいまいましい手がかりを持っていません..

于 2012-07-14T05:25:14.497 に答える