在实体框架中包含二进制关系条件

时间:2017-01-26 15:06:47

标签: c# entity-framework entity-framework-6

我有两个表之间的二元关系,我需要将其转换为Entity框架 就这样, Indexs 表中的 TypesDescUse 字段包含一些数字。你需要将它们视为二进制值,并且它们的id在 DescUse 中,在传统的TSQL中通过二元关系可以具有来自DescUse表的名称。

  

example1:0001& 0011是0001,并且DescUse中的1具有逐个值的名称    “网站”

     

example2:1010& 1000是1000,而DescUse中的8具有名称“Desktop”的名称

select  DU.Name AS Name from Indexs I 
INNER JOIN DescUse DU ON I.TypesDescUse & DU.DescUseID <>0

你知道我怎么能在lambda Entity框架中做到这一点?

1 个答案:

答案 0 :(得分:0)

from I in Indexs
join DU in DescUse on true equals true 
where (I.TypesDescUse & DU.DescUseID) != 0
select new {Name = I.Name};

OR

 Indexs.Join(DescUse,
             I => true,
             DU => true,
             (I, DU) => new { IVal = I.TypesDescUse, DUVal = DU.DescUseID, Name = DU.Name })
       .Where(x => (x.IVal & x.DUVal) != 0).Select(x => x.Name)