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 来自一个单独的方法我遇到的问题是数据添加了两次,即一条记录添加了两次,这段代码有什么问题,我应该使用什么替代方法 GetData() 方法?

4

1 回答 1

0

您的 UserResources 表中有相同的 useId 的重复记录,或者您的 userIds 数组中有重复的 userId。

无论哪种方式,为 100 条记录中的每条记录分别访问数据库似乎是一种非常低效的做事方式。至少,最好将 use 数组的数组传递给 GetData 函数,并在其中使用“in”子句。然后让您的 GetData 函数返回 UserResources 的枚举。

于 2012-10-16T07:54:40.660 回答