using System.Collections.Generic;
using System.ComponentModel;
using OData.QueryBuilder.Builders;
public static void Main()
List<CompositeKey> listeDesClesComposees = new List<CompositeKey>()
new CompositeKey { IdA = 1, IdB = 2, IdD = 3 },
new CompositeKey { IdA = 4, IdB = 5, IdD = 6 },
new CompositeKey { IdA = 7, IdB = 8, IdD = 9 }
var uri = new ODataQueryBuilder<ODataContainer>("test")
.For<Entity>(s => s.EntityType)
.Filter(x => listeDesClesComposees.Contains(new { x.IdA, x.IdB, IdD = x.IdC }))
public class CompositeKey
public int IdA { get; set; }
public int IdB { get; set; }
public int IdD { get; set; }
public class ODataContainer
public Entity EntityType {get;set;}
public int IdA { get; set; }
public int IdB { get; set; }
public int IdC { get; set; }
public string val1 { get; set; }
public string val2 { get; set; }
public string val3 { get; set; }