null oid not supported Telerik OpenAccess


Error : Null oid not supported 

Stack trace
[ArgumentException: null oid not supported]
at Telerik.OpenAccess.SPI.Backends.ThrowException(Exception e)
at OpenAccessRuntime.ExceptionWrapper.Throw()
at OpenAccessRuntime.common.StatesReturned.addImp(OID oid, State state, Boolean directFlag)
at OpenAccessRuntime.common.StatesReturned.add(OID key, State value_Renamed)
at OpenAccessRuntime.Relational.RelationalQueryResult.fetchManagedTypes(ApplicationContext context, Int32 fetchAmount, QueryResultContainer results)
at OpenAccessRuntime.Relational.RelationalQueryResult.fetchNextResultBatch(ApplicationContext context, QueryResultContainer results, Int32 fetchAmount)

 

Reason :

Its because of the there is an object where the id (Primary key) field contains a null.

if there is an entity having two fields set as Identity field. and one of the fields is purely unique (set a Primary Key in DB)  where as the other one is not so this kind of error raised by Telerik ORM.

Solution:

Telerik ORM is not supporting  ‘null’ values as part of the identity. Each member that makes up the identity of a class must have a non-null value. There is no workaround either to this problem.

Hope this help !

Order by Date Descending issue (Linq)


Issue :

 Dim list As List(Of Eventlist) = (From d In EventList
 Order By d.Status Descending, d.StartDate Descending, 
 Select d).ToList()

It gives me the date ordered by month and day, but doesn’t take year into consideration. for example:

12/31/2009 
12/31/2008
12/30/2009
12/29/2009

Needs to be more like:

12/31/2009
12/30/2009
12/29/2009
12/28/2009

Solution :

 Dim list As List(Of Eventlist) = (From d In EventList
 Order By d.Status Descending, Year(d.StartDate) Descending, Month(d.StartDate) Descending, Day(d.StartDate) Descending
 Select d).ToList()


Hope it helps !

Opening project in Visual Studio fails due to nuget.targets not found error


Problem:
I try to open project in Visual Studio and get all these nuget errors:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

Solution:
Follow the following steps to resolve above error
  1. Install Nuget.
  2. Right click on the solution and select “Enable NuGet Package Restore”.
  3. Click Ok on the warning.
  4. Close and re-open the solution.
Hope this help!

Page Life Cycle


Page Life Cycle

 

Seq Events Controls Initialized View state
Available
Form data
Available
What Logic can be written here?
1 Init No No No Note: You can access form data etc. by using ASP.NET request objects but not by Server controls.Creating controls dynamically, in case you have controls to be created on runtime. Any settinginitialization.Master pages and them settings. In this section, we do not have access to viewstate , posted values and neither the controls are initialized.
2 Load view state Not guaranteed Yes Not guaranteed You can access view state and any synch logic where you want viewstate to be pushed to behind code variables can be done here.
3 PostBackdata Not guaranteed Yes Yes You can access form data. Any logic where you want the form data to be pushed to behind code variables can be done here.
4 Load Yes Yes Yes This is the place where you will put any logic you want to operate on the controls. Like flourishing a combobox from the database, sorting data on a grid, etc. In this event, we get access to all controls, viewstate and their posted values.
5 Validate Yes Yes Yes If your page has validators or you want to execute validation for your page, this is the right place to the same.
6 Event Yes Yes Yes If this is a post back by a button click or a dropdown change, then the relative events will be fired. Any kind of logic which is related to that event can be executed here.
7 Pre-render Yes Yes Yes If you want to make final changes to the UI objects like changing tree structure or property values, before these controls are saved in to view state.
8 Save view state Yes Yes Yes Once all changes to server controls are done, this event can be an opportunity to save control data in to view state.
9 Render Yes Yes Yes If you want to add some custom HTML to the output this is the place you can.
10 Unload Yes Yes Yes Any kind of clean up you would like to do here.

 

Reference :

http://www.codeproject.com/Articles/73728/ASP-NET-Application-and-Page-Life-Cycle

 

File Download code in vb.net


If Not String.IsNullOrEmpty(strURL) Then
Dim req As New WebClient()
Dim response As HttpResponse = HttpContext.Current.Response
response.Clear()
response.ClearContent()
response.ClearHeaders()
response.Buffer = True
response.AddHeader(“Content-Disposition”, “attachment;filename=””” + Server.MapPath(strURL) + “”””)
Dim data As Byte() = req.DownloadData(Server.MapPath(strURL))
response.BinaryWrite(data)
response.[End]()
End If

 

Hope it helps !

SalesForce (Login) Integration With ASP.NET


Steps…

  1. Add Service Reference, select Advanced and then select Add Web Reference.
  2. In the URL box of the Add Web Reference dialog box, type the URL to obtain the service description of the XML Web service you want to access, such as:

    c:\Files\enterprise.wsdl

  3. Click Go to retrieve information about the XML Web service.
  4. In the Web reference name box, rename the Web reference to sforce, which is the name you will use for this Web reference.
  5. Click Add Reference to add a Web reference for the target XML Web service.
  6. Visual Studio retrieves the service description and generates a proxy class to interface between your application and the XML Web service.

Issues :

error CS0030: Cannot convert type ‘SFDC.ListViewRecordColumn[]’ to ‘SFDC.ListViewRecordColumn’
error CS0030: Cannot convert type ‘SFDC.ListViewRecordColumn[]’ to ‘SFDC.ListViewRecordColumn’
error CS0029: Cannot implicitly convert type ‘SFDC.ListViewRecordColumn’ to ‘SFDC.ListViewRecordColumn[]’
error CS0029: Cannot implicitly convert type ‘SFDC.ListViewRecordColumn’ to ‘SFDC.ListViewRecordColumn[]’

Solution:

Add following to enterprise.wsdl.xml

<xsd:attribute name=”tmp” type=”xsd:string”></xsd:attribute>

e.g.

<complexType name=”ListViewRecord”>
<sequence>
<element name=”columns” type=”tns:ListViewRecordColumn” maxOccurs=”unbounded”/>
</sequence>
<xsd:attribute name=”tmp” type=”xsd:string”></xsd:attribute>
</complexType>

Hope this help!