2010-04-08 20 views
1

我有一個問題,我很慚愧地問,但我會去反正。我在asp.net mvc中創建了一個通用庫。我在這個網站上遇到了一個我發現正是我所期待的例子,但是有一個問題。它引用了一個對象 - 實體 - 我不知道它在哪個名稱空間中。我通常創建我的存儲庫並使用實體框架,但是我決定使用通用存儲庫,因爲我在一次又一次地在多個項目中使用相同的代碼。什麼.Net命名空間包含用於通用存儲庫的實體?

下面是代碼:

公共接口IRepository { 空隙保存(ENTITY實體) 其中ENTITY:實體;

void Delete<ENTITY>(ENTITY entity) 
    where ENTITY : Entity; 

ENTITY Load<ENTITY>(int id) 
    where ENTITY : Entity; 

IQueryable<ENTITY> Query<ENTITY>() 
    where ENTITY : Entity; 

IList<ENTITY> GetAll<ENTITY>() 
    where ENTITY : Entity; 

IQueryable<ENTITY> Query<ENTITY>(IDomainQuery<ENTITY> whereQuery) 
    where ENTITY : Entity; 

ENTITY Get<ENTITY>(int id) where ENTITY : Entity; 

IList<ENTITY> GetObjectsForIds<ENTITY>(string ids) where ENTITY : Entity; 

void Flush(); 

}

有人能告訴我是什麼名稱空間的實體?正如你所看到的,代碼上有一個約束,所以它必須是一個實體類型。我知道System.Data.Entity中有一個實體,但這不是我所需要的。在我尋找一些使我永遠找不到的名稱空間的地方之前,我已經有了實例,但是我已經搜索並且無法找到適當的名稱空間來正確地投射我的通用項目。我可以將它作爲一個班級加以處理,並且可以用它來完成,但是這使我無法在任何地方找到實體。

有人可以幫助我....請..... :-)

下面是原帖的鏈接。 ASP.NET MVC: How many repositories?

回答

0

我想在你引用的例子中,實體是一個基本接口,可以從存儲庫提供的所有對象都需要實現。

我不相信它是框架的一部分,但他使用的是RichardOD解決方案的一部分。

在這個例子中,它可以很簡單,只需定義所有存儲庫保存項目使用的Id的類型即可。

e.g

public interface Entity 
{ 
    int Id {get; set;} 
} 

善良,

+1

丹你是SOOOOO吧!我剛剛開始閱讀C#中的.Net域驅動設計,答案立即變得清晰。正如你所說。現在我覺得有點傻,因爲之前沒有想過這個。當我從asp.net移動到asp.net mvc時,我感覺自己像一個新手一樣。我沒在想。再次感謝。 – Sara 2010-04-09 22:29:03

相關問題