0

新しく作成された DbSet に要素を追加するとき、ID は常に 1 から (要素の数) まで生成されますか? それとも、これが確実に行われるようにコードを追加する必要がありますか?

本当の問題は、私がしたいということです

public DbSet<Student> Students { get; set; }
public DbSet<StudentPointer> top100allTime { get; set; }

ので、私は持っています

public class StudentPointer
{
    public int StudentPointerID { get; set; }

    public int StudentID { get; set; }

    public int Votes { get; set; }
}

public class Student
{
    public int StudentPointerID { get; set; }

    public int StudentID { get; set; }

    public String name { get; set; }
}

ここで何が起こるかというと、ユーザーが学生に投票するたびに、私は top100allTime で StudentPointer を取得します..その「Vote」変数を更新します...次に、「top100allTime」の学生が常に投票の順序であると仮定すると、次の方法で隣人を取得しますその ID は 1 桁上にあり、投票を比較し、必要に応じてトップ リストの場所を切り替えます。

これは、dbSet の ID が常に 1 から (要素数) までの順序で生成される場合にのみ機能します。

それが私が尋ねる理由です

または、top100List を作成するより効率的な方法はありますか?

4

1 に答える 1

0

「学生」テーブル内に「投票」列を残しておいて、誰かがその学生に投票するたびに更新し、「投票」列にインデックスを作成し、トップ 100 が必要なときにいつでも更新できるようにすると、はるかに簡単になります。投票の降順で上位 100 を選択します。学生テーブルが 500,000 レコードを超え始めたら、このジョブには十分な NoSQL db を使用できます。

于 2014-12-18T11:02:28.303 に答える