モデルにEntityFramework(edmxファイル)を使用し、WCFを使用してモデルにアクセスしています。エンティティデータモデル(テーブルオブジェクトの例)のリストを返そうとすると、エラーが発生します:
サーバーは意味のある応答を提供しませんでした。これは、コントラクトの不一致、セッションの早期シャットダウン、または内部サーバーエラーが原因である可能性があります。
これが私のWCFコードです。IService.cs:
[ServiceContract(CallbackContract = typeof(IPesananCallBack), SessionMode = SessionMode.Required)]
public interface IPelayanWebService
{
[OperationContract]
List<table> GetAllTables();
}
Service.cs:
public List<table> GetAllTables()
{
TableModel model = new TableModel();
return model.GetAllTables();
}
モデルの私のコード:
public List<table> GetAllTables()
{
using (restoicdbEntities ent = new restoicdbEntities())
{
return ent.table.ToList();
}
}
クライアントでその関数を呼び出すだけで、エラーが発生しました。独自のデータ契約を作成する必要がありますか?edmxからデータコントラクトを生成する方法はありますか?
更新: これは、EntityFrameworkから生成されたコードです。
[EdmEntityTypeAttribute(NamespaceName="restoicdbModel", Name="table")]
[Serializable]
[DataContractAttribute(IsReference=true)]
public partial class table: EntityObject
{
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 ID_TABLE
{
get
{
return _ID_TABLE;
}
set
{
if (_ID_TABLE != value)
{
OnID_TABLEChanging(value);
ReportPropertyChanging("ID_TABLE");
ID_TABLE = StructuralObject.SetValidValue(value);
ReportPropertyChanged("ID_TABLE");
OnID_TABLEChanged();
}
}
}
private global::System.Int32 ID_TABLE;
partial void OnID_TABLEChanging(global::System.Int32 value);
partial void OnID_TABLEChanged();
}