实体框架返回不同的数据然后DB查询

时间:2011-01-04 20:59:06

标签: vb.net entity-framework

我对数据库中的某些数据有一个看法,它会像我期望的那样返回数据,例如

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>

这是下面gridview的数据源

<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 个答案:

答案 0 :(得分:4)

我现在已经解决了这个问题......由于问题的出现,问题出现了 here。添加正确的实体密钥解决了问题

答案 1 :(得分:0)

你应该做的第一件事是捕获(使用探查器)从EF发送到服务器的sql;然后将其粘贴到查询分析器中,看看当你手动运行时得到的结果......它会告诉你它是否是客户端/前端问题,而不是服务器问题。 (我怀疑前端)。