そのため、どのグループが学生に属しているかを表示する Windows フォーム アプリケーション (クライアント) があります。
サービス側では、これは次のように行われます。
List<Student> students = new List<Student>();
List<Group> Groups = new List<Group>();
public List<Group> GetStudentCollectionByGroup(string anything)
{
List<Group> groups = (from g in Groups
where
(from t in g.Groupsz where
string.Equals(t.StudentID, anything, StringComparison.CurrentCultureIgnoreCase)
|| string.Equals(t.FirstName, anything, StringComparison.CurrentCultureIgnoreCase)
|| string.Equals(t.LastName, anything, StringComparison.CurrentCultureIgnoreCase)
select t).Count() > 0
select g).ToList();
return groups;
}
グループに学生を追加するには、次の方法を使用しました。
public void AddStudentToGroup(string group, string studentID, string firstName, string lastName)
{
var result = Groups.Where(n => String.Equals(n.GroupName, group)).FirstOrDefault();
if (result != null)
{
result.Groupsz.Add(new Student() { StudentID = studentID });
result.Groupsz.Add(new Student() { FirstName = firstName });
result.Groupsz.Add(new Student() { LastName = lastName });
}
}
そして、私の GET メソッドは次のようになります。
[OperationContract]
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/GetStudentCollectionByGroup/{anything}")]
List<Group> GetStudentCollectionByGroup(string anything);
データ コントラクトは次のようになります。
public class Student
{
public Student()
{
StudentGroup = new List<Group>();
}
[DataMember(Name = "StudentID")]
public string StudentID { get; set; }
[DataMember(Name = "FirstName")]
public string FirstName { get; set; }
[DataMember(Name = "LastName")]
public string LastName { get; set; }
public List<Group> StudentGroup { get; set; }
}
[DataContract(Name = "Group")]
public class Group
{
public Group()
{
Groupsz = new List<Student>();
}
public string GroupName { get; set; }
public List<Student> Groupsz { get; set; }
}
特定の学生を入力すると、クライアント側からグループを問題なく取得できるようになりました。しかし、グループに基づいて学生を取得するために別のテキストボックスに入力すると、何も返されませんか? たとえば、グループ「A」と入力すると、そのグループに属するすべての学生が返されます。学生「B」に属するグループのコレクションを返す方法と同じように