Linq to SQL Class - PullRequest
       11

Linq to SQL Class

0 голосов
/ 29 декабря 2008

У меня есть класс, см. Ниже, когда я пытаюсь запросить его с другой страницы, на которую он не ссылается, например, если я поставлю "var Notes = HandhedNotes.GetNotesByLinkIDJoin ();" когда я смотрю на Notes, там нет ссылок. Я думаю, что из-за IQuerable, может быть, я должен использовать что-то еще ??

namespace WebSys
{
  public partial class HandheldNote
  {        
    public static IQueryable GetNotesByLinkIDJoin()
    {
        WebSysDataContext db = new WebSysDataContext(Contexts.WEBSYS_CONN());

        var Note = from x in db.HandheldNotes
                   join t in db.Employees on x.By equals t.EmployeeNo
                   orderby x.DateAdded
                   select new
                   {
                       DateRaised = x.DateAdded,
                       Note = x.Note,
                       TypeID = x.TypeID,
                       EmployeeID = t.Forenames + " " + t.Surname
                   };
        return (IQueryable)Note;
    }

}

}

Ответы [ 2 ]

1 голос
/ 30 декабря 2008

все, что вам нужно.
похоже, что вы на самом деле пытаетесь получить коллекцию заметок, так что вы можете сделать это ...

public IList<Note> GetMyNotes()
{
IList<Note> NoteList = (from x in db.HandheldNotes
                   join t in db.Employees on x.By equals t.EmployeeNo
                   orderby x.DateAdded
                   select new Note
                   {
                       DateRaised = x.DateAdded,
                       Note = x.Note,
                       TypeID = x.TypeID,
                       EmployeeID = t.Forenames + " " + t.Surname
                   }).ToList<Note>();
        return NoteList;
}
1 голос
/ 29 декабря 2008

Вы не перечислили ни по чему. Ленивая загрузка во всей красе. доступ к одному из анонимных параметров в Note, и вы сможете получить доступ ко всем из них.

что вы также можете сделать, это создать класс ...

public class Note
{
public DateTime DateRaised;
public string Note ;
public int TypeID;
public string EmployeeID;
}

, а затем

Note Note = (from x in db.HandheldNotes
                   join t in db.Employees on x.By equals t.EmployeeNo
                   orderby x.DateAdded
                   select new Note
                   {
                       DateRaised = x.DateAdded,
                       Note = x.Note,
                       TypeID = x.TypeID,
                       EmployeeID = t.Forenames + " " + t.Surname
                   }).FirstOrDefault();
        return Note;

Я думаю, что важно сказать следующее:

вы создаете DataContext и затем пытаетесь вернуть переменную LINQ, которая не была перечислена. При попытке получить доступ к этой информации вы получите сообщение об ошибке, что базовый текстовый текст не существует. ваши 2 варианта - либо иметь Datacontext в другом месте, либо возвращать перечисляемое значение из этой функции. используйте ToArray () или ToList () или что-то подобное ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...