2012-10-16 74 views
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从一个单独的方法来 我遇到的问题是,数据I添加两次即一个记录添加两次,这个代码有什么问题,以及我应该使用GetData()方法的替代方法?

回答

0

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

无论采取哪种方式,对于100条记录中的每条记录分别进入DB似乎都是非常低效的做事方式。至少,将使用数组的数组传递给GetData函数会更好,并在其中使用'in'子句。然后让你的GetData函数返回一个UserResources的枚举。

+0

是的,我有每个userId的重复记录,但每个记录都不同 –

+0

那么,究竟是什么被添加两次? –

+0

例如,如果userid 1有两个记录,一个resID是1,第二个resid是2,那么id为1的记录将增加两次 –