Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Question
Tuesday, April 19, 2011 2:57 PM
I am new the entity data model world but from what I am reading this is the way of the future - so please forgive me if this question is simple or in the wrong place.
My app retrieves everything from a webservice and in the past I would query the xml in memory and store the values in a dataset for binding. How can I I do something similar with the entity model? That is query xml with LINQ and place the values in an entity model to databind.
All replies (4)
Thursday, June 9, 2011 9:22 PM ✅Answered
Hello again:)
Just a quick simply sample for you——
Let's say that your xml contents look like this:
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
<book id="bk103">
<author>Corets, Eva</author>
<title>Maeve Ascendant</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-11-17</publish_date>
<description>After the collapse of a nanotechnology
society in England, the young survivors lay the
foundation for a new society.</description>
</book>
<book id="bk104">
<author>Corets, Eva</author>
<title>Oberon's Legacy</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2001-03-10</publish_date>
<description>In post-apocalypse England, the mysterious
agent known only as Oberon helps to create a new life
for the inhabitants of London. Sequel to Maeve
Ascendant.</description>
</book>
<book id="bk105">
<author>Corets, Eva</author>
<title>The Sundered Grail</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2001-09-10</publish_date>
<description>The two daughters of Maeve, half-sisters,
battle one another for control of England. Sequel to
Oberon's Legacy.</description>
</book>
<book id="bk106">
<author>Randall, Cynthia</author>
<title>Lover Birds</title>
<genre>Romance</genre>
<price>4.95</price>
<publish_date>2000-09-02</publish_date>
<description>When Carla meets Paul at an ornithology
conference, tempers fly as feathers get ruffled.</description>
</book>
<book id="bk107">
<author>Thurman, Paula</author>
<title>Splish Splash</title>
<genre>Romance</genre>
<price>4.95</price>
<publish_date>2000-11-02</publish_date>
<description>A deep sea diver finds true love twenty
thousand leagues beneath the sea.</description>
</book>
<book id="bk108">
<author>Knorr, Stefan</author>
<title>Creepy Crawlies</title>
<genre>Horror</genre>
<price>4.95</price>
<publish_date>2000-12-06</publish_date>
<description>An anthology of horror stories about roaches,
centipedes, scorpions and other insects.</description>
</book>
<book id="bk109">
<author>Kress, Peter</author>
<title>Paradox Lost</title>
<genre>Science Fiction</genre>
<price>6.95</price>
<publish_date>2000-11-02</publish_date>
<description>After an inadvertant trip through a Heisenberg
Uncertainty Device, James Salway discovers the problems
of being quantum.</description>
</book>
<book id="bk110">
<author>O'Brien, Tim</author>
<title>Microsoft .NET: The Programming Bible</title>
<genre>Computer</genre>
<price>36.95</price>
<publish_date>2000-12-09</publish_date>
<description>Microsoft's .NET initiative is explored in
detail in this deep programmer's reference.</description>
</book>
<book id="bk111">
<author>O'Brien, Tim</author>
<title>MSXML3: A Comprehensive Guide</title>
<genre>Computer</genre>
<price>36.95</price>
<publish_date>2000-12-01</publish_date>
<description>The Microsoft MSXML3 parser is covered in
detail, with attention to XML DOM interfaces, XSLT processing,
SAX and more.</description>
</book>
<book id="bk112">
<author>Galos, Mike</author>
<title>Visual Studio 7: A Comprehensive Guide</title>
<genre>Computer</genre>
<price>49.95</price>
<publish_date>2001-04-16</publish_date>
<description>Microsoft Visual Studio 7 is explored in depth,
looking at how Visual Basic, Visual C++, C#, and ASP+ are
integrated into a comprehensive development
environment.</description>
</book>
</catalog>
And let's say suppose you've got the same structure (an empty datatable in your db, and you've mapped it in the EF's file)——
var result = from e in XDocument.Load("xxx.xml").Descedants("book")
select new
{
BookId = e.Attribute("id").Value,
Author = e.Element("author").Value,
……………………
};
foreach(var item in result)
{
//Suppose your EF's model's name is Book, then——
Book book = new Book{BookId=item.BookId,BookAuthor=item.Author,……};
XXXEntities.AddToBook(book);
}
XXXEntities.SaveChanges();
Thursday, April 21, 2011 9:55 PM
Hi:)
If you want to load data contents into a DataTable, there are many ways:
1) Just Use DataSet.Load(Your Xml File) and then use DataSet.Tables[0] you can get a nice DataTable ful-filled with data contents.
2) Just use XDocument to read out specific nodes' values and assign into a DataTable……
However, I'm not quite sure what you mean by saying"How can I I do something similar with the entity model?"
Would you mind offering us your EF's model, and tell use what you really want to do step by step?
Thx
PS:In my mind, EF can be used directly, no need to install them into DataTable, it's shown in the form of a model collection with LINQ. See related articles: http://msdn.microsoft.com/en-us/library/aa697427(v=vs.80).aspx
Thursday, June 9, 2011 11:21 AM
Not sure why that was tagged as an answer, no offense - but I mentioned I'm already loading xml into a dataset, LINQ along with a typed table converter are pretty cool.
But again, my original question - How can I query an xml file with LINQ and store the result in an entity model. If you need a model to work with, create one that looks like this (below).
ClientCode
ClientName
ClientAddr1
Friday, July 15, 2011 12:04 PM
Sorry for the delay,
I think this has answered my question though, but just want to confirm. Basically I can't use the entity framework unless it is tied to a Database.