Tables :
Component ComponentRights
-------------- ----------------
ComponentId (PK) ComponentRightsID
ComponentName ComponentId (FK)
RoleId
Допустим, MyRoleId = 2;
Теперь я хочу получить все записи из обеих таблиц, но основываясь на одном условии. Если я получаю одну и ту же запись, но с другим RoleId, тогда должна быть только одна запись, где RoleId = MyRoleId. Если дубликатов нет, условие пропускается.
Example:
Record 1:
------------
ComponentId = 1,
ComponentName = 'SampleComponent'
RoleId = 1
Record 2 :
-----------
ComponentId = 1,
ComponentName = 'SampleComponent'
RoleId = 2
* So In this case I should get Record 2.
Here is my sample code:
var Components = (from components in MyDB.Component
join componentRights in MyDB.ComponentRights on components.ComponentId equals componentRights.ComponentId
into AllComponents
from allComponent in AllComponents.DefaultIfEmpty()
where !(components.IsDeleted)
select new ComponentRightsModel()
{
ComponentRightsId = (!allComponent.IsDeleted) ? (Guid?)allComponent.ComponentRightsId : null,
ComponentId = components.ComponentUID,
ComponentName = components.ComponentName,
RoleId = allComponent.RoleId
}).ToList();