Is there a method to use an XML file instead of a database in the Entity Framework?
6 Answers
Entity Framework itself is provider-based, and is designed to operate over a relational database. If you really wanted to, you could write your own provider for EF that reads from/writes to an xml file, but it would be a huge amount of work.
I expect you should really be looking at one of:
- LINQ-to-XML
- XML (de)serialization
- XPath/XQuery
- XSLT
Entity Framework doesn't have a natural fit in this scenario.
1 Comment
I like LINQ to XSD: http://linqtoxsd.codeplex.com/
It is basically LINQ to XML with some classes derived from the XSD to ensure it fits the schema...
1 Comment
I don't think that's really possible.
From MSDN (emphasis mine):
The ADO.NET Entity Framework is designed to enable developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema.
Comments
Is the problem that you need a file-based data store? If so, you could use a SimpleDB data provider. SimpleDB is great if you need a relational database in a single file. MS Access is great for this as well.
XML is designed for communication. If used for storage, it is incredibly inefficient. It might be best to break the two tasks apart and store your data in a relational database and then generate your XML from your data.