FirstOrDefault()方法是处理此方案的好方法

111*_*110 2 c# entity-framework entity-framework-4.1

我有一个类Group,其中包含作为组成员的用户列表.
我使用FirstOrDefault()方法来检查打开组页面的用户是否已经在该组中.
基于此我显示"加入组"或"离开组"按钮.
我只是想知道这是否是这种场景的好方法还是有更好的方法?

public class Group
{
    public virtual ICollection<UserInGroup> UsersInGroups { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

详细操作方法我首先加载组,然后检查组中的用户:

public ActionResult Show(int groupId, string title)
{
    GroupViewModel groupiewModel = new GroupViewModel();

    var model = groupsRepository.GetGroupById(groupId);

    groupiewModel.Group = model;

    Guid userId = (Guid)Membership.GetUser().ProviderUserKey;
    var alreadyInGroup = model.UsersInGroups.FirstOrDefault(x => x.UserId == userId);

    if (alreadyInGroup != null)
        groupiewModel.IsInThisGroup = true;
    ...
}
Run Code Online (Sandbox Code Playgroud)

pod*_*ska 7

我认为这Any是一个更好的选择

bool alreadyInGroup = model.UsersInGroups.Any(x => x.UserId == userId); 

if (alreadyInGroup)
{
     ....
Run Code Online (Sandbox Code Playgroud)