0

WinForms/C#、SQL サーバー、および EF 4 で開発されたデスクトップ アプリケーションで作業する必要があります。

DAL は、リポジトリおよび UoW パターンを使用して実装されています。データは読み取り専用の目的でのみ使用されています。一部のファイル、XML、またはメモリ コレクションのデータを使用して、データベースを削除し、アプリケーションを変更して動作させる方法を教えてください。DALへの変更が必要です。

変更を最小限に抑える方法を教えてください。

4

2 に答える 2

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に入れて、データソース構成をより柔軟にすることができます。

于 2012-09-07T05:26:55.810 に答える
0

最終的にDBをSQL Server CEに変換しました。

于 2012-09-10T23:31:56.890 に答える