2016-10-16 5 views
2

У меня есть веб-форма asp.net и список на ней. Я хочу взять данные из таблицы SQL Server с помощью linq.Как показать все строки в listview

Но когда я вижу результат, я не вижу строк с первым полем образца (идентификатором человека).

Как я могу показать все результаты?

В моей таблице SQL Server я вижу это так:
ОБНОВЛЕНО
ID Имя Дата изменения статуса фактического
0 John 2016-05-10 00:00 STATUS1 0
0 John 2016-05- 10 00:00 Status2 1
1 Жел 2016-03-10 00:00 1
СОСТОЯНИЕ 3 2 Эндрю 2016-01-10 00:00 0
СОСТОЯНИЕ 4 2 Эндрю 2016-03-10 19:30 Status2 1
3 Кож 2016-03-10 19:30 Статус1 1
4 Ars 2016-03-10 19:30 STATUS1 1
5 Озер 2016-03-10 19:30 STATUS1 0
5 Озер 2016-03-10 19:30 Status2 1

И когда я показываю страницу Я вижу только первые две строки

Мой код:

 <asp:ListView ID="ListView2" ItemType="DocCat.Models.ReqInf" SelectMethod="GetData 
      DataKeyNames="ID" EnableViewState="false" runat="server" visible="true" 
        UpdateMethod="ListView2_UpdateItem" > 
      <LayoutTemplate> 
       <div class="outerContainer"> 
        <table id="docTable"> 
         <tr> 
         <th>ID</th> 
          <th>Name</th> 
          <th>ChangeStatus</th> 
          <th>Change Date</th> 
</tr> 
         <tr runat="server" id="itemPlaceholder"></tr> 
        </table> 
       </div> 
      </LayoutTemplate> 
    <ItemTemplate > 
       <tr> 
         <td><%# Item.ID %></td> 
      <td><%# Item.F1%></td> 
      <td><%# Item.ChangeS %></td> 
      <td><%# Item.ChangeD %></td></tr> 
      </ItemTemplate> 
      </asp:ListView> 

код:

public IEnumerable<ReqInf> GetReq() 
{ 
    IEnumerable<ReqInf> docsu = repository.ReqForDoc; 
return docsu.OrderBy(I => I.ID) 
} 

sp.Net WebForms, Entity Framework

ОБНОВЛЕНИЕ
РЕЗУЛЬТАТ:
1 Жел 2016-03-10 00:00 1
СОСТОЯНИЕ 3 3 Kozh 2016-03-10 19:30 STATUS1 1
4 Арс 2016-03-10 19:30 STATUS1 1
5 Озер 2016-03-10 19:30 Status2 1

UPDATE
Я использую БДФВ контекст.

public DbSet<ReqInf> ReqForDoc { get; set; } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
      { 
       modelBuilder.Entity<ReqInf>().ToTable("ReqForDoc"); 
      } 

И Repository

public IEnumerable<ReqInf> ReqForDoc 
     { 
      get { return context.ReqForDoc; } 
     } 
+0

Если вы видите две строки, высота списка слишком мала, чтобы видеть все четыре ряда. – jdweng

+0

Последние две строки не различаются. Может быть, у вас есть логика, чтобы показывать только отдельные строки. Если возможно, разместите свой бизнес-код. –

+0

@Vicky_Thinking Когда я меняю свою строку, мне нужно ее сохранить и сделать другую строку с другой датой и статусом. Мне нужно иметь журналы, из-за этого мне нужно увидеть все строки с одинаковым идентификатором. –

ответ

1

Через день я понимаю, что моя проблема не в коде. У меня есть идентификатор столбца, и EF автоматически распознает его как ключевой атрибут.Но, ключ должен быть уникальным, и я:

  • Переименован ID колонка
  • Добавлено [Key] Атрибут к уникальному свойству (ChangeDate в моем случае)

Мой код прибавление в модели:

using System.ComponentModel.DataAnnotations; 
namespace Project.Models 
     { 
      public class BaseClass 
      { 
       [Key] 
       public DateTime ChangeDate { get; set; } 
    ...