WCF中的删除方法 [英] Delete method in WCF

查看:104
本文介绍了WCF中的删除方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为此寻找一种LINQ删除方法:

I'm looking for a LINQ delete method for this:

<ArrayOfGroup>
    <Group>
        <GroupName>c</GroupName>
        <StudentList>
             <Student>
                 <TimeAdded>0001-01-01T00:00:00</TimeAdded> // trying to delete from here
                 <StudentID>1</StudentID>
                 <FirstName>a</FirstName>
                 <LastName>b</LastName> // to here
                 <StudentGroup/>
             </Student>
        </StudentList>
    </Group>
</ArrayOfGroup>

出于某种原因,当我以这种方式删除它时:

For some reason when I delete it this way:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class Service : IService
{
    List<Student> students = new List<Student>();
    List<Group> Groups = new List<Group>();
    public void removeStudent(string studentID)
    {
        students.Remove(students.Find(f => f.StudentID.Equals(studentID)));
        //var result = students.Where(n => String.Equals(n.StudentID, studentID)).FirstOrDefault();
        //if (result == null)
        //{
        //    result.StudentGroup.Remove(StudentList.Student.Find(f => f.StudentID.Equals(studentID)));
        //}
        // students.RemoveAll(f => f.StudentID.Equals(studentID)); also tryed this
    }

它不会将其从ArrayOfGroup的学生列表"/学生"区域中删除,因此我受够了尝试解决为什么不删除它的问题,而只是想找到一种将其与原始记录一起删除的新方法.我觉得这样做很像罪犯,但如果有人能提供帮助,我将不胜感激.

It doesn't remove it from the Student List/ student area of my ArrayOfGroup, so I am fed up trying to solve why it isn't deleting and just trying to find a new way to delete it along with the original records. I feel like a criminal for doing this but if anyone can help would be much appreciated.

我的数据合同如下:

[DataContract(Name="Student")]
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; }

    [DataMember(Name = "TimeAdded")]
    public DateTime TimeAdded;

    public string TimeAddedString
    {
        get
        {
            return this.TimeAdded.ToString("dd/MM/yyyy hh:mm:ss");
        }
    }

    public List<Group> StudentGroup { get; set; }
}

[DataContract(Name = "Group")]
public class Group
{
    public Group() 
    {
        StudentList = new List<Student>();
    }

    [DataMember(Name = "GroupName")]
    public string GroupName { get; set; }

    public List<Student> StudentList { get; set; }
}

如果有帮助,这是如何将学生添加到组中?

This is how a student is added to a group if it helps?

public void AddStudentToGroup(string group, string studentID, string firstName, string lastName)
{
    var result = Groups.Where(n => String.Equals(n.GroupName, group)).FirstOrDefault();
    var result1 = students.Where(n => String.Equals(n.StudentID, studentID)).FirstOrDefault();
    if (result != null)
    {
        result.StudentList.Add(new Student() { StudentID = studentID, FirstName = firstName, LastName = lastName });
    }
    if (result1 != null)
    {
        result1.StudentGroup.Add(new Group() { GroupName = group });
    }
}  

推荐答案

您可以在List<T>对象上使用Remove方法,该方法采用如下谓词:

You can use the Remove method on the List<T> object which takes a predicate like so:

students.RemoveAll(s => s.StudentId == 5);

这篇关于WCF中的删除方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆