我想爲數據訪問層一個接口,並實現它的各種數據庫(即MongoDB中,SQL服務器等)如何擁有一個通用的接口?
public interface IDataAccess
{
Task InsertEntityAsync<T>(string collectionName, T entity) where T : IData;
// the rest
}
和一個特定的數據庫:
public class MongoDbDataAccess : IDataAccess
{
public Task InsertEntityAsync<T>(string collectionName, T entity) where T : IData
{
throw new NotImplementedException();
}
}
我可以例如,使T
代替StudentEntity
,然後在InsertEntityAsync()
方法內將其轉換爲該特定數據庫接受的類型。
但我希望我的方法是通用的,所以如果我通過StudentEntity
,該方法將其轉換爲StudentDocument
第一,然後將其保存在數據庫中,如果我通過UniversityEntity
,該方法將其轉換爲UniversityDocument
然後保存它,你會得到理念。
如何有一個通用的方法將數據庫中的每個數據轉換爲相應的接受類型?
您的接口的意圖是爲您可能使用的每個可能的數據庫框架,或者您可能在給定數據庫上使用的每種實體類型提供接口嗎? –
@ChrisThompson他們倆都是 – Blendester
我不是很瞭解downvotes。這太寬泛了怎麼樣?! – Blendester