我有一種情況,我想使用單個業務邏輯類來對各種實體框架類執行類似的操作。我已經定義了這些類在部分類文件中實現的接口。通過接口屬性LINQ to Entities
然而,當我嘗試寫一個LINQ到實體查詢針對這些接口中的方法,因爲查詢不直接,但通過一個接口使用類的屬性,我得到一個NotSupportedException異常。
我想繁重存到數據庫層等是有辦法做到這一點,而不訴諸LINQ的對象?
下面是一些代碼,演示了我的問題(它使用的由工廠創建了一個通用存儲庫類)。
public interface INamedEntity
{
int ID { get; set; }
string Name { get; set; }
}
// This is an Entity Framework class which has CustomerID and CustomerName properties.
public partial class Customer: INamedEntity
{
int INamedEntity.ID
{
get { return this.CustomerID; }
set { this.CustomerID = value; }
}
string INamedEntity.Name
{
get { return this.CustomerName; }
set { this.CustomerName = value; }
}
}
...
public string GetName<T>(int entityID) where T: EntityObject, INamedEntity
{
using(var repository = RepositoryFactory.CreateRepository<T>())
{
return repository
.Where(e => e.ID == entityID)
.Select(e.Name)
.Single();
}
}
是的,這看起來像問題。 – gareththegeek 2012-02-17 10:50:41