Tags: , | Categories: VB.Net, Entity Framework, SQL Posted by Christoph on 28.05.2010 17:44 | Kommentare (0)
Man kann natürlich auch TSQL mit dem Entity Framework direkt benutzen. Das ganze funktioniert folgendermaßen: Dim Con As EntityClient.EntityConnection = Ctx.Connection Dim Conn = Con.StoreConnection Dim Stat = Conn.State If Not Stat = ConnectionState.Open Then Conn.Open() Using Cmd = Conn.CreateCommand Cmd.CommandText = Sql.ToString Cmd.ExecuteNonQuery() End Using If Not Stat = ConnectionState.Open Then Conn.Close()
Tags: , | Categories: Entity Framework Posted by Christoph on 18.02.2009 12:48 | Kommentare (0)
In einem Projekt benutze ich das Entity Framework, um eine Tabelle im SQL Server zu bearbeiten. Dazu habe ich auf der Seite eine Entity Data Source (mit EnableUpdate=”true”), die ein Gridview befüllt. Dieses Gridview  kann dann, da in der <Columns> ein <asp:CommandField…> mit ShowEditButton=True, die Daten bearbeiten. Nun hatte ich den seltsamen Fehler, dass beim Abspeichern der bearbeiteten Daten folgender Fehler kam: Serverfehler in der Anwendung /. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde. Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Quellfehler: Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden. Stapelüberwachung: [NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.] System.Web.UI.WebControls.EntityDataSourceView.ConvertWCProperty(IDictionary values, Dictionary`2 convertedValues, List`1 visitedProperties, PropertyDescriptor pd, ParameterCollection referenceParameters, Dictionary`2& exceptions) +51 System.Web.UI.WebControls.EntityDataSourceView.ConvertProperties(IDictionary values, PropertyDescriptorCollection propertyDescriptors, ParameterCollection referenceParameters) +293 System.Web.UI.WebControls.EntityDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +471 System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +4049840 System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +1350 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +626 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70 System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +110 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981 Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.3074; ASP.NET-Version:2.0.50727.3074 Nach einigen Testläufen hatte ich den (extrem ärgerlichen) Fehler gefunden: Grundsätzlich ist das Entity Framework ja Case Insensitive, aber genau hier muss die Schreibweise der Felder im Gridview GENAU so sein, wie in der Datenbank=Datenmodell.
Tags: , , | Categories: Entity Framework, VB.Net, Visual Stutio Posted by Christoph on 02.02.2009 19:12 | Kommentare (0)
Entity Framework und SQL Server 2005 mit 2008 im Mischbetrieb [Mehr]
Tags: , | Categories: Entity Framework, LINQ, VB.Net Posted by Christoph on 15.01.2009 11:34 | Kommentare (0)
In einem Projekt benutze ich das Microsoft Entity Framework um Daten aus der Datenbank an ein Gridview zu binden. Nun will ich aber zeilenweise bestimmte Zellen ausblenden, wenn das Datenobjekt z.B. bestimmte Arten von Eigenschaften/Kindern hat. Um im RowDataBound Handler des Gridview aber das jewilige Entity zu bekommen, benötigt man eine kleine Hilfsfunktion:   Public Function GetRowItem(Of TEntity As Class)(ByVal dataItem As Object) As TEntity Dim Entity = TryCast(dataItem, TEntity) If Entity IsNot Nothing Then Return Entity Dim td = TryCast(dataItem, ComponentModel.ICustomTypeDescriptor) If td IsNot Nothing Then Return DirectCast(td.GetPropertyOwner(Nothing), TEntity) Return NothingEnd Function Danach kann man dann in der RowDataBound folgenden Code benutzen, um die Entität (in meinem Fall fom Typ "Attribute”) zu bekommen:   Private Sub gvAttribs_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvAttribs.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim Attrib = GetRowItem(Of Attribute)(e.Row.DataItem) '-- Und hier gehts dann weiter ... End IfEnd Sub   Ich habe diesen Hinweis im MSDN Social gefunden.