1
我有幾個EF代碼第一類有一個CategoryId成員,它也被定義在名爲ICategoryFilterable的接口中。LINQ to Entities和鑄造
public class One : ICategoryFilterable
{
public int CategoryId { get; set; }
/* more properties here */
}
public class Two : ICategoryFilterable
{
public int CategoryId { get; set; }
/* more properties here */
}
public interface ICategoryFilterable
{
int CategoryId { get; set; }
}
現在,我想從指定的類別檢索數據庫中的記錄。我爲此創建了一個通用方法,但它不起作用,我無法找到解決方案來執行此操作。
private IQueryable<T> FilterByCategory<T>(IQueryable<T> items, IEnumerable<int> filter)
where T : ICategoryFilterable
{
return from item in items
where filter.Contains(item.CategoryId)
select item;
}
無法轉換的類型 'MyNamespace.One' 爲類型 'MyNamespace.ICategoryFilterable'。 LINQ to Entities僅支持投射EDM基元或枚舉類型。
請參閱我的變化。但是,這也不行(讀例外)。 – tuta4 2013-03-15 16:10:49
你可以給你的問題添加一個FilterByCategory方法調用的例子嗎? – Oliver 2013-03-15 16:13:30
查看更新,我添加了一個額外的通用類型。 – Oliver 2013-03-15 16:19:33