我必須在使用WinForms/C#,SQL服務器和EF 4開發的桌面應用程序上工作。通過數據遷移進行沒有SQL Server的應用程序工作?
DAL使用Repository和UoW paterns實現。數據僅用於只讀目的。您能否請您提供一下如何刪除數據庫,並通過使用某些文件,XML或內存集合中的數據修改應用程序的工作方式。 DAL需要的是一些chage。
請指導如何做到最少更改。
我必須在使用WinForms/C#,SQL服務器和EF 4開發的桌面應用程序上工作。通過數據遷移進行沒有SQL Server的應用程序工作?
DAL使用Repository和UoW paterns實現。數據僅用於只讀目的。您能否請您提供一下如何刪除數據庫,並通過使用某些文件,XML或內存集合中的數據修改應用程序的工作方式。 DAL需要的是一些chage。
請指導如何做到最少更改。
我終於將我的數據庫轉換爲SQL Server CE。
存儲庫是一個抽象,所以,你只需要編寫另一個實現。像這樣:
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中,並使數據源配置更加靈活。
我不知道存儲庫模式,但這看起來非常類似於IoC。可能是在應用程序中實現IoC的另一種方式。 – danish