2011-01-04 14 views
2

Ich habe einen Blick auf einige Daten in meiner Datenbank zurückkehr es die Daten gibt, wie ich erwarten würde, zum BeispielEntity Framework unterschiedliche Daten dann DB Abfrage

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

Jedoch, wenn ich das meinem Entity Model hinzugefügt haben und abfragen es mir doppelt (und unerwartete) Daten erscheinen

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

ich bin einfach ein Entity Data Source auf diesen Entity-Bindung, aber ich meinen Kopf nach links kratzen, warum die Daten anders zurückgegeben werden

EDIT: Interessanterweise kann dies nicht das Ergebnis von einigen seltsamen unter der Haube Join sein, da die Zeilenanzahl wie erwartet übereinstimmen. Ich habe auch zusammen eine Abfrage versetze mich mit den gleichen ungeraden Ergebnisse zu testen

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

ich Visual Studio 2010, .NET 4

bin mit Hat jemand ähnliche Probleme?

EDIT: Der vordere Code Ende ist ziemlich einfach

<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> 

, die die Datenquelle für die gridview unter

<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> 

Antwort

4

Ich habe jetzt das Problem gelöst .... das Problem ergab sich aufgrund der Probleme here. Das Hinzufügen des richtigen Entitätsschlüssels löste das Problem

+0

Danke, ich hatte heute dasselbe Problem und habe es mit Ihrer Hilfe gelöst. – franklins

+0

Ich habe auch eine Arbeit gefunden, die in der von Dean aufgezeigten Lösung steht – franklins

0

Das erste, was Sie tun sollten Capture (mit Profiler) SQL ist, dass wird von EF an den Server gesendet; Dann fügen Sie das in den Abfrageanalysator ein und sehen, welche Ergebnisse Sie zurückbekommen, wenn Sie es manuell ausführen .... das wird Ihnen sagen, ob es sich um ein Client-/Frontend-Problem handelt, im Gegensatz zu einem Serverproblem. (Ich vermute Frontend).

+0

Haben Sie eine Anleitung, wie Sie dies tun? – Dean

+0

Ich nehme an, Sie verwenden SQL Server? Wenn das der Fall ist, können all diese Dinge direkt in Management Studio erledigt werden. –

+0

Ich habe es geschafft, das von der EF generierte SQL zu bekommen und es liefert die Daten wie erwartet ?? Das hat mich total ratlos gemacht! – Dean