Как получить текст из запроса LINQ2SQL? - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть веб-страница, на которой я предоставляю ПОЛЬЗОВАТЕЛЮ возможность писать заметки. Теперь, когда веб-страница проверяет, что пользователь USER: abc, она извлекает заметку из таблицы MEMO.

Вот мой код в Page_Load ():

using (EntityMemoDataContext em = new EntityMemoDataContext())
            {
                int getEntity = Int16.Parse(Session["EntityIdSelected"].ToString());
                var showMemo = from r in em.EntityMemoVs_1s
                               where r.EntityID == getEntity
                               select r.Memo;

                tbShowNote.Text = String.Join(@"<br />", showMemo);
            }

tbShowNote показывает мне значение следующим образом:

test<br />test1<br />test1<br />test4<br />test4

И я хочу вот так:

Тест
Test1
Test2 ...

tbShowNote - это текстовое поле!

Ответы [ 3 ]

1 голос
/ 15 апреля 2011

Вы попросили только первое напоминание, так что вы вернулись.Если вы хотите, чтобы он перечислялся с каждым в отдельной строке в html, вы можете сделать это:

    using (EntityMemoDataContext em = new EntityMemoDataContext())
    {
        int getEntity1 = Int16.Parse(Session["EntityIdSelected"].ToString());
        var showMemo = from r in em.EntityMemoVs_1s
                       where r.EntityID == getEntity1
                       select new
                       {
                           r.Memo
                       };
        tbShowNote.Text = String.Join(@"<br />", showMemo);
    }

Ключ к выводу: если r.Memo имеет тип string, то выполненный вами запрос LINQ дал вамназад IQueryable<string>.Вам решать, хотите ли вы сгладить этот список позже.

Редактировать: Equiso сделал хорошее замечание, что вы на самом деле возвращаете IQueryableанонимного типа, а не IQueryable<string> из-за синтаксиса new { ... }.Я бы сказал, объединить его ответ с моим и запустить с ним:

var showMemo = from r in em.EntityMemoVs_1s
               where r.EntityID == getEntity1
               select r.Memo;

tbShowNote.Text = String.Join(@"<br />", showMemo);
1 голос
/ 15 апреля 2011

Проблема в части select вашего запроса linq, вы оборачиваете результаты в анонимный тип, поэтому, когда вы вызываете ToString(), вы видите { Memo = test }.Вы, вероятно, захотите это так:

var showMemo = from r in em.EntityMemoVs_1s
               where r.EntityID == getEntity1
               select r.Memo;

После этого showMemo будет содержать только строки.

0 голосов
/ 15 апреля 2011

Похоже, ваш showMemo - это коллекция, и вы просто присваиваете верхнее значение? Если вы помещаете их в одну строку, вам нужно объединить их вместе.

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