私は、クライアントが単純なタスクを実行するためにサーバーと通信する必要がある単純なアプリケーションを作成しています。サーバーは、データベースとWCFサービスで構成されています。クライアントはサービスとデータベースに接続します。
ado.netエンティティデータモデルを使用して、データベースにCRUD操作を作成しています。クライアントにサービスを介してCRUD操作を作成させ、クライアントがデータベースに接続しないようにします。
エンティティオブジェクトを返すサービスでメソッドを作成すると、例外が発生します。たとえば、私は次の方法を持っています:
public Data.Scheduling[] GetSchedules()
{
Data.TCEntities1 entities = new Data.TCEntities1();
var a = entities.Schedulings.ToArray();
return a;
}
Schedulings
メソッドを機能させるために、クラスや他のエンティティクラスを再作成したくありません。クライアントをデータベースに接続せずに、wcfクラスライブラリサービスを介して作成、読み取り、更新、および削除の操作を公開するにはどうすればよいですか?
編集
それが混乱している場合の私の問題の詳細な説明:
サーバーアプリケーション(wcfサービス)には、基本的な機能に加えて、ado.netエンティティデータクラスがあります。私はado.netエンティティデータクラスを持っているので、次のようにしてデータベースから結果を非常に簡単に抽出できます。
Data.TCEntities1 entities = new Data.TCEntities1();
var a = entities.Schedulings.ToList(); // schedulings is a table in my database
ご覧のとおり、これらの行はデータベース内のテーブルスケジューリングからすべてのスケジューリング行を取得し、作業するエッセイになります(リストがあります)。wcfサービスでエラーが返されるのになぜエラーが発生するのList<Data.Scheduling>
ですか?クライアントが非常に単純な操作を実行するだけなので、クライアントがデータベースを照会しないようにします(データベースには2つのテーブルしかない)。