2012-09-07 49 views
0

我必須在使用WinForms/C#,SQL服務器和EF 4開發的桌面應用程序上工作。通過數據遷移進行沒有SQL Server的應用程序工作?

DAL使用Repository和UoW paterns實現。數據僅用於只讀目的。您能否請您提供一下如何刪除數據庫,並通過使用某些文件,XML或內存集合中的數據修改應用程序的工作方式。 DAL需要的是一些chage。

請指導如何做到最少更改。

回答

0

我終於將我的數據庫轉換爲SQL Server CE。

2

存儲庫是一個抽象,所以,你只需要編寫另一個實現。像這樣:

public interface IRepository<T> 
{ 
    IQuerable<T> GetEntities(); 
} 

// this works with database 
public class SomeEntityDbRepository<SomeEntity> : IRepository<SomeEntity> 
{ 
    // ... 

    public IQuerable<SomeEntity> GetEntities() 
    { 
    return dbContext.Set<SomeEntity>(); 
    } 
} 

// this works with file storage: 
public class SomeEntityFileRepository<SomeEntity> : IRepository<SomeEntity> 
{ 
    // ... 

    public IQuerable<SomeEntity> GetEntities() 
    { 
    using (var stream = new Filestream(/* ... */)) 
    { 
     var serializer = /* ... */; 
     var someEntities = /* ...deserialize from file */ 

     return someEntities.AsQuerable(); 
    } 
    } 
} 

然後,例如,通過依賴注入來提供這個實現BLL。 此外,您可以將DI容器配置放入app.config中,並使數據源配置更加靈活。

+0

我不知道存儲庫模式,但這看起來非常類似於IoC。可能是在應用程序中實現IoC的另一種方式。 – danish