我想知道我怎麼在EF1.0LINQ到實體
相比,一組ID,我知道在EF4.0 Beta 1中有一個包含方法,所以它會是這個樣子
int[] associationIds = GetAssociationIds();
from c in Associations where c.AssociationId.Contains(associationIds) select c;
但您如何做EF1.0中的等效內容
我想知道我怎麼在EF1.0LINQ到實體
相比,一組ID,我知道在EF4.0 Beta 1中有一個包含方法,所以它會是這個樣子
int[] associationIds = GetAssociationIds();
from c in Associations where c.AssociationId.Contains(associationIds) select c;
但您如何做EF1.0中的等效內容
在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);
的predicatebuilder文檔列出一個辦法做到這一點沒有linqkit所以我用這個方法,它不漂亮,但它將在EF4.0出現之前完成這項工作。乾杯