2009-08-07 202 views
0

我想知道我怎麼在EF1.0LINQ到實體

相比,一組ID,我知道在EF4.0 Beta 1中有一個包含方法,所以它會是這個樣子

int[] associationIds = GetAssociationIds(); 
from c in Associations where c.AssociationId.Contains(associationIds) select c; 

但您如何做EF1.0中的等效內容

回答

1

在EF1中沒有內置的方法。此任務的最常用的工具是PredicateBuilder

(使用工具包)的解決方案是構建在你的整數數組測試AssociationId針對每個id的自定義表達式。得到的表達看起來是這樣的:

int[] associationIds = GetAssociationIds(); 

// use PredicateBuilder to build this expression using the contents of 
// associationIds: 

Expression<Func<Association, bool>> testIds = 
    c => c.AssociationId == 1 || c.AssociationId == 2 || c.AssociationId == 5; 

,並使用它:

var matchingAssociations = db.Associations.Where(testIds); 
0

的predicatebuilder文檔列出一個辦法做到這一點沒有linqkit所以我用這個方法,它不漂亮,但它將在EF4.0出現之前完成這項工作。乾杯