Monday, June 30, 2008

Linq 2 entities and XML

When using Linq 2 Sql with Linq to Xml in VB you could write code like this to generate xml

Dim db As New NorthwindDataContext
 
Dim xmlLinq2Sql = <root><%= From emp In db.Employees _
                            Select <Employee id=<%= emp.EmployeeID %>><%= emp.FirstName & " " & emp.LastName %>
                                   </Employee> %>
                  </root>

Which will generate xml  like this
<root>
  <Employee id="1">Nancy Davolio</Employee>
  <Employee id="2">Andrew Fuller</Employee>
  <Employee id="3">Janet Leverling</Employee>
  <Employee id="4">Margaret Peacock</Employee>
  <Employee id="5">Steven Buchanan</Employee>
  <Employee id="6">Michael Suyama</Employee>
  <Employee id="7">Robert King</Employee>
  <Employee id="8">Laura Callahan</Employee>
  <Employee id="9">Anne Dodsworth</Employee>
</root>

The entity framework requires a more explicit format for the query

Dim entDB As New NorthwindModel.NorthwindEntities
Dim xmlLinq2Entities = <root><%= From ent In entDB.Employees.AsEnumerable _
                                 Select <Employee id=<%= ent.EmployeeID %>><%= ent.FirstName & " " & ent.LastName %>
                                        </Employee> %>
                       </root>


Hope this helps