0

我在一个类中创建了一个类,因此它可以替代编写调用数据库的 3 个不同方法 - 所以我创建了一个包含相关项目的类,现在当我尝试构建时,我得到错误 Cannot implicity convert type System.collections.generic.list<anonymousType#1> to class that i created StudentDocuments ,当我点击错误时将我引向return subs声明。

public class  StudentDocuments
    {
        public Guid DocID {get; set;}
        public string Assignment {get; set;}
        public DateTime Submitted {get; set;}
        public string Student {get;set;}
    }




public StudentDocuments GetStudentSubmissionGrid(Guid usr, Guid lib)
    {
        using (var dc = new DocMgmtDataContext())
        {
            var subs = (from doc in dc.Documents
                        join u in dc.Users on doc.OwnedByUserID equals u.ID
                        where doc.OwnedByUserID == usr && doc.LibraryID == lib
                        select new { 
                            DocID = doc.ID, 
                            Assignment = doc.Library.Name, 
                            Submitted = doc.UploadDT,
                            Student = u.FullName
                        })
                .OrderByDescending(c => c.Submitted).ToList();
            return subs;
        }
    }
4

1 回答 1

3

您创建匿名类型的 LINQ。相反,您必须根据您的返回类型创建特定类型的对象列表。

用这个:

select new StudentDocuments{ 
                               DocID = doc.ID, 
                               Assignment = doc.Library.Name, 
                               Submitted = doc.UploadDT,
                               Student = u.FullName
                           }

并将您的方法声明为:

public List<StudentDocuments> GetStudentSubmissionGrid(Guid usr, Guid lib)

您也可以返回IEnumerable<StudentDocuments>而不是列表。

更新

var subs = (from doc in dc.Documents
                    join u in dc.Users on doc.OwnedByUserID equals u.ID
                    where doc.OwnedByUserID == usr && doc.LibraryID == lib
                    orderby doc.UploadDT descending
                    select new StudentDocuments
                     { 
                        DocID = doc.ID, 
                        Assignment = doc.Library.Name, 
                        Submitted = doc.UploadDT,
                        Student = u.FullName
                     }).AsEnumerable().ToList();
于 2013-03-14T21:27:23.733 回答