0

私はテーブルのエンティティクラスを作成したエンティティフレームワークプロジェクトに取り組んでいます

以下は、レコードを取得する私の方法です

 public UserResource GetData(long Id)
        {
            try
            {

                return dataContext.UserResources.Where(r => r.UserID == Id && r.Resource.IsActive == true).FirstOrDefault();


            }
            catch (Exception ex)
            {
              throw ex;
            }
        }

そして、コントローラーでリストに追加しています

List<UserResource> objlst = new List<UserResource>();
for(int i=0;i<100;i++)
{
var data = objResourceRepository.GetData(userIds[i].UserID);
if (data != null)
objlst.Add(data);
}

userIds は別のメソッドから来ています 私が抱えている問題は、データが 2 回追加されていることです。つまり、1 つのレコードが 2 回追加されています。

4

1 に答える 1

0

UserResources テーブルに同じ useId のレコードが重複しているか、userIds 配列に userId が重複しています。

いずれにせよ、100 レコードごとに個別に DB にアクセスするのは、非常に非効率的な方法のようです。少なくとも、使用配列の配列を GetData 関数に渡し、そこで 'in' 句を使用する方がよいでしょう。次に、GetData 関数が UserResources の列挙を返すようにします。

于 2012-10-16T07:54:40.660 に答える