WCF REST テンプレートを使用して WCF サービス ライブラリを構築し、PUT および GET 呼び出しを作成しました。PUT メソッドは、ブロブをデータベースに送信するのに問題なく機能します。
GET では、Web サービスに直接アクセスし、ストアド プロシージャの結果をデータセットとして表示し、これをグリッドビューにバインドできるようにしたいと考えています。ストアド プロシージャは単純な select ステートメントであり、テーブルから 4 つの列のうち 3 つを返します。私は次のものを持っています:
[WebGet(UriTemplate = "/?name={name}", ResponseFormat = WebMessageFormat.Xml)]
public List<Object> GetCollection(string name)
{
try
{
db.OpenDbConnection();
// Call to SQL stored procedure
return db.GetCustFromName(name);
}
catch (Exception e)
{
Log.Error("Stored Proc execution failed. ", e);
}
finally
{
db.CloseDbConnection();
}
return null;
}
また、Linq を SQL クラスに追加して、データベース テーブルとストアド プロシージャへのアクセスを含めました。他の必要なファイルに加えて、Default.aspx ファイルも作成しました。
protected void Page_Load(object sender, EventArgs e)
{
ServiceDataContext objectContext = new ServiceDataContext();
var source = objectContext.GetCustFromName("Tiger");
Menu1.DataSource = source;
Menu1.DataBind();
}
しかし、これにより、エンティティタイプ '' は登録されたモデルに属していません。
データバインディングはどこで行うべきですか? GetCollection() の戻り値の型は何ですか? 私はこれで立ち往生しています。これを行う方法についてヘルプを提供してください。