私はWCFを初めて使用しますが、WCFメソッドからデータを返すことについて疑問があります。
WCFメソッドからSqlDataReaderまたはDataTableオブジェクトを返すことはできますか?
ありがとう
私はWCFを初めて使用しますが、WCFメソッドからデータを返すことについて疑問があります。
WCFメソッドからSqlDataReaderまたはDataTableオブジェクトを返すことはできますか?
ありがとう
はい、できますが、DataTableには多くのオーバーヘッドがあるため、エンティティのリストに書き込んでこのリストを渡すことを検討してください。
この方法で私ははるかに少ないトラブルを引き起こしました
新しいオブジェクトを作成してから、それらのコレクションを返す必要があります。このようなもの。
public class Thing
{
public int ID { get; set; }
public string Name { get; set; }
}
次に、データテーブル/リーダーを使用して、LINQまたは反復を使用してコレクションを作成できます。
大まかなsudoコード:
Initialise List for Thing
foreach var v in DataTable
{
List<Thing>.Add(new Thing(){ ID = v.ID, Name = v.Name });
}
return List
または、linqを使用することもできます。
List<Thing> theList = DataTable.Select(x => new Thing { ID = x.ID, Name = x.Name });
return theList;
あなたは残りを理解することができます、私は確信しています、あなたがより明確にする必要があるならば、私は私の答えを拡大します。お役に立てれば。
はい、100% .net でサポートされている任意の returntype で返すことができます。ただし、WCF は非常に柔軟であるため、WCF のクライアントは常に 100% .net フレームワークであるとは限りません。Javaでも消費できます。Java returntype は .net returntype と 100% 同等ではないため、注意が必要です。たとえば、一般的なリストは、クライアント側でデフォルトで監視可能なコレクションに変換されます。