データベースにユーザー、ユーザーグループなどの典型的なテーブルがあり、それらには関係があります。
私のドメインモデルでは、ユーザーをリクエストすると、ユーザーが取得され、各ユーザーが属しているプロパティを持っていることを望みます。つまり、これらは彼が属するグループです。プロパティで、グループのリストが必要です(グループとしてタイプセーフ)
一方、同じことを行う必要があります。つまり、各グループは、グループに属するユーザーを認識している必要があります。
私はこのクラスを持っています(例):
public class User
{
int Id { get; set; }
string Name { get; set; }
List<Usergroup> BelongsTo { get; set; }
User()
{
BelongsTo = new List<Usergroup>();
}
}
public class Usergroup
{
int Id { get; set; }
string Name { get; set; }
List<User> Users { get; set; }
Usergroup()
{
Users = new List<User>();
}
}
internal class Relation
{
int userId;
int groupId;
}
さて、それを実装する最良の方法と、すべてのオブジェクトを埋めるための最速の方法は何ですか。
ところで:私は亜音速を使用してすべてのデータベースレコードを取得しています(テーブルごとに1つ選択します)。少なくとも 1500 人のユーザーと 30 のグループがあります。
私の現在のコードは、グループのforeach、グループの関係.where、次にusers.singleordefaultに基づいてユーザーを見つけ、ユーザーをグループに追加し、グループをユーザーに追加します。ただし、これを行うには約30秒かかります。
私のclient-appはwebappなので、キャッシュされたリポジトリに結果を保存するので、このようにしています!!