我对数据库中的某些数据有一个看法,它会像我期望的那样返回数据,例如
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>
答案 0 :(得分:4)
我现在已经解决了这个问题......由于问题的出现,问题出现了 here。添加正确的实体密钥解决了问题
答案 1 :(得分:0)
你应该做的第一件事是捕获(使用探查器)从EF发送到服务器的sql;然后将其粘贴到查询分析器中,看看当你手动运行时得到的结果......它会告诉你它是否是客户端/前端问题,而不是服务器问题。 (我怀疑前端)。