2015-07-30 6 views
0

Я пытаюсь протестировать метод расширения динамического соединения, как определено here, для объединения двух наборов данных (набор данных1 и набор данных2) в нескольких условиях. Мое условие соединения, как показано нижеКак использовать динамический метод расширения соединения LINQ для множества условий

outerSelector = "new (dataset1.ToBeReconciled as col1, dataset1.TransactionDate as col2)"; 
innerSelector = "new (dataset2.ToBeReconciled as col1, dataset2.TransactionDate as col2)"; 

Это не приводит к какой-либо ошибке, но в то же время всегда возвращает ноль записей, даже если у меня есть записи, которые соответствуют этому условию.

Любая идея, как сделать эту работу? Благодаря!

ответ

0

Может быть, вы должны начать с простого примера, а затем попытаться работать через то, что там у вас ... Я сочинил просто понять один ниже ..

void Main() 
{ 
    var fruits = new List<Fruit> 
    { 
     new Fruit{ GroceryId = 1,Name = "Apple", ProductId = 1}, 
     new Fruit{ GroceryId = 1,Name = "Orange", ProductId = 2}, 
    }; 

    var groceries = new List<Grocery> 
    { 
     new Grocery { GroceryId = 1, Name = "Fruits and Vegetables" }, 
     new Grocery { GroceryId = 2, Name = "Drinks and snacks" }, 
    }; 

    var joinedResults = fruits.Join(groceries, // References the groceries declared above, 
            fruit => fruit.GroceryId, // Join by GroceryId located on the Fruit 
            grocery => grocery.GroceryId, // Join by the GroceryID located on Grocery 
            (product, grocery) => new 
            { 
             ProductId = product.ProductId, 
             ProductName = product.Name, 
             GroceryName = grocery.Name 
            }); 
} 
public class Fruit 
{ 
    public int ProductId { get; set; } 
    public int GroceryId { get; set; } 
    public string Name { get; set; } 
} 

public class Grocery 
{ 
    public int GroceryId { get; set; } 
    public string Name { get; set; } 
} 

Result

+0

простой работает отлично, но мое требование состоит в том, что мне нужно несколько условий для соединения. И присоединиться к нескольким не работает. –

+0

Итак, что мешает вам добавить еще один оператор Join в конец предыдущего? –

+0

ничего. Он отлично компилируется. Но это не работает. Он всегда указывает, что «перечисление не дало никаких результатов», даже если есть записи, соответствующие условиям соединения. –