在linq连接查询中将字符串转换为guid:条件语句

时间:2012-11-19 03:51:30

标签: c# linq

我有linq查询,如下所示

using (RMPortalEntities _RMPortalEntities = new RMPortalEntities()) {

                var _RSVP_ButtonLocations = _RMPortalEntities
                                            .tbl_RSVP_ButtonLocation
                                            .Join(_RMPortalEntities.tbl_RSVP_Setting,
                                                            _RSVP_ButtonLocation => Guid.Parse(_RSVP_ButtonLocation.ID),
                                                            _RSVP_Setting => _RSVP_Setting.RSVP_Button_Location_ID,
                                                            (_RSVP_ButtonLocation, _RSVP_Setting) => new { _RSVP_ButtonLocation, _RSVP_Setting })
                                            .Join(_RMPortalEntities.tbl_Event,
                                                            _RSVP_ButtonLocation_RSVP_Setting => _RSVP_ButtonLocation_RSVP_Setting._RSVP_Setting.EventID,
                                                            _Event => _Event.ID,
                                                            (_RSVP_ButtonLocation_RSVP_Setting, _Event) => new { _RSVP_ButtonLocation_RSVP_Setting, _Event })
                                            .Where(x => x._Event.Active == true
                                                        && x._Event.ID == _EventID)
                                            .Select(x => new
                                            {

                                                RSVP_ButtonLocations = x._RSVP_ButtonLocation_RSVP_Setting._RSVP_ButtonLocation.RSVP_ButtonLocation

                                            });

                return _RSVP_ButtonLocations.FirstOrDefault().RSVP_ButtonLocations;
            }

但问题是linq查询不允许我将字符串转换为Guid值。 有人可以给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

基于CjCoax注释,您可以存储GUID实例,然后在查询中使用它:

using (RMPortalEntities _RMPortalEntities = new RMPortalEntities()) {
            var GUID = new Guid(_RMPortalEntities.tbl_RSVP_ButtonLocation.ID);
            var _RSVP_ButtonLocations = _RMPortalEntities
                                        .tbl_RSVP_ButtonLocation
                                        .Join(_RMPortalEntities.tbl_RSVP_Setting,
                                                        _RSVP_ButtonLocation => GUID,
                                                        _RSVP_Setting => _RSVP_Setting.RSVP_Button_Location_ID,
                                                        (_RSVP_ButtonLocation, _RSVP_Setting) => new { _RSVP_ButtonLocation, _RSVP_Setting })
                                        .Join(_RMPortalEntities.tbl_Event,
                                                        _RSVP_ButtonLocation_RSVP_Setting => _RSVP_ButtonLocation_RSVP_Setting._RSVP_Setting.EventID,
                                                        _Event => _Event.ID,
                                                        (_RSVP_ButtonLocation_RSVP_Setting, _Event) => new { _RSVP_ButtonLocation_RSVP_Setting, _Event })
                                        .Where(x => x._Event.Active == true
                                                    && x._Event.ID == _EventID)
                                        .Select(x => new
                                        {

                                            RSVP_ButtonLocations = x._RSVP_ButtonLocation_RSVP_Setting._RSVP_ButtonLocation.RSVP_ButtonLocation

                                        });

            return _RSVP_ButtonLocations.FirstOrDefault().RSVP_ButtonLocations;
        }