Entity Framework, возвращающий разные данные, чем запрос БД - PullRequest
2 голосов
/ 04 января 2011

В моей базе данных есть данные, которые возвращают данные, как я ожидал, например,

Call Date    To     From   Phone Number
20/1/2010    00:00  23:59  08923233223
20/1/2010    00:00  23:59  08923233245

Однако, когда я добавил это в свою модель сущности и запросил ее, я получил дубликаты (и неожиданные) данные, появляющиеся

Call Date    To     From   Phone Number
20/1/2010    00:00  23:59  08923233223
20/1/2010    00:00  23:59  08923233223

Я просто привязываю источник данных сущности к этой сущности, но мне остается почесать голову, почему данные возвращаются по-разному

РЕДАКТИРОВАТЬ: Интересно, что это не может быть результатом какого-то странного скрытого соединения, так как количество строк соответствует ожидаемому. Я также собрал сам запрос для проверки с такими же странными результатами

From o In App.Entities.v_PersonalRules Where o.companyid = CompanyID Select o

Я использую Visual Studio 2010, .NET 4

Кто-нибудь сталкивался с подобными проблемами?

РЕДАКТИРОВАТЬ: код переднего конца довольно просто

  <asp:EntityDataSource ID="EDS_Personal" runat="server" ConnectionString="name=Entities_NEW"
                                    DefaultContainerName="Entities_NEW" EnableDelete="True" EnableInsert="False"
                                    EnableUpdate="True" EntitySetName="v_PersonalRules" EntityTypeFilter="v_PersonalRules" >
                                </asp:EntityDataSource>

, который является источником данных для вида сетки ниже

<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" DataSourceID="EDS_Personal"
                                    EnableModelValidation="True" AllowPaging="True" AllowSorting="True" CssClass="nice_table" PagerStyle-CssClass="cssPager" AutoGenerateDeleteButton="true" AutoGenerateEditButton="true" >
                                    <Columns>
                                          <asp:CommandField ButtonType ="Link" EditText="Edit" ShowEditButton="true" />
                                          <asp:BoundField DataField="billdate" HeaderText="Bill Date" SortExpression="billdate" DataFormatString="{0:dd-MM-yyyy}"  />
                                          <asp:BoundField DataField="starttime" HeaderText="From" SortExpression="starttime" DataFormatString="{0:t}"/>
                                          <asp:BoundField DataField="endtime" HeaderText="To" SortExpression="endtime" DataFormatString="{0:t}" />
                                          <asp:BoundField DataField="description" HeaderText="Type" SortExpression="description" />
                                          <asp:BoundField DataField="HSNumber" HeaderText="Calls From" SortExpression="HSNumber" />
                                          <asp:BoundField DataField="uid" HeaderText="uid" SortExpression="uid" visible="true"/>
                                          <asp:BoundField DataField="dialledNo" HeaderText="Calls To" SortExpression="dialledNo" />
                                          <asp:BoundField DataField="companyid" HeaderText="Company ID" SortExpression="companyid" />

                                    </Columns>
                                </asp:GridView>

Ответы [ 2 ]

4 голосов
/ 08 января 2011

Я теперь решил проблему .... проблема возникла из-за проблем, изложенных здесь .Добавление правильного ключа объекта решило проблему

0 голосов
/ 05 января 2011

Первое, что вы должны сделать, это перехватить (используя профилировщик) sql, который отправляется с EF на сервер; затем вставьте это в анализатор запросов и посмотрите, какие результаты вы получите, когда запустите его вручную ..., который скажет вам, является ли это проблемой клиента / интерфейса, а не проблемой сервера. (Я подозреваю, что передний конец).

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