我想在我的Windows窗體應用程序中使用Linq to SQL。提取泛型Linq查詢
本地數據庫中的數據是從Web服務中獲取的或本地創建的。
如果一個實體是由它具有外部ID設置
我經常需要使用的代碼如下通過他們的外部ID獲取對象的Web服務牽強:
var user = (from u in db.User
where u.ExternalId == userExternalId
select u).First();
var location = (from l in db.Location
where l.ExternalId == locationExternalId
select l).First();
所以我雖然約將其更改爲一個通用的功能,如下一個:
internal TEntity FetchByExternalId<TEntity>(System.Data.Linq.Table<TEntity> table,
int externalId)
where TEntity: IExternalStorable
{
return (from obj in table
where obj.ExternalId == externalId
select (TEntity)obj).First();
}
遺憾的是這樣的功能並不編譯:
- 的代碼是從數據庫生成的我不能添加IExternalStorable到實體類(我雖然關於使用部分類,但它似乎並不工作)
- 它的C#抱怨TEntity ISN」 t引用類型我不確定泛型「where」約束應該是什麼樣子。
任何想法如何在泛型函數中使用linq?
回覆:1.這是命名空間的問題:)謝謝。 – 2009-07-08 12:39:04
已解決問題。謝謝! – 2009-07-08 12:41:43