public IssueTracker() { Document = new XDocument(); using (var xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LiveLinqIssueTrackerXML.Data.IssueTracking.xml")) { Debug.Assert(xmlStream != null); XmlReaderSettings settings = new XmlReaderSettings { IgnoreWhitespace = true }; XmlReader reader = XmlReader.Create(xmlStream, settings); XElement data = XElement.Load(reader); Document.ReplaceNodes(data); } Employees = from x in Document.AsLive().Root().Elements("Employees") select new Employee { EmployeeID = (int)x.Element("EmployeeID"), FullName = (string)x.Element("FullName") }; Features = from x in Document.AsLive().Root().Elements("Features") select new Feature { ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), FeatureName = (string)x.Element("FeatureName") }; Products = from x in Document.AsLive().Root().Elements("Products") join f in Features on(int) x.Element("ProductID") equals f.ProductID into g select new Product { ProductID = (int)x.Element("ProductID"), ProductName = (string)x.Element("ProductName"), Features = g }; Issues = from x in Document.AsLive().Root().Elements("Issues") select new Issue { IssueID = (int)x.Element("IssueID"), ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), Description = (string)x.Element("Description"), AssignedTo = (int)x.Element("AssignedTo"), Fixed = (bool)x.Element("Fixed") }; _issuesById = Issues.Rows.Indexes.Add(row => ((Issue)row.Value).IssueID, true); Assignments = from x in Document.AsLive().Root().Elements("Assignments") select new Assignment { EmployeeID = (int)x.Element("EmployeeID"), ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), }; }
public Form1() { InitializeComponent(); using (var xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LiveLinqToXML.Northwind.xml")) { System.Diagnostics.Debug.Assert(xmlStream != null); XmlReaderSettings settings = new XmlReaderSettings { IgnoreWhitespace = true }; XmlReader reader = XmlReader.Create(xmlStream, settings); XDocument doc = XDocument.Load(reader); document = doc.AsLive(); } customers = document.Descendants("Customers"); orders = document.Descendants("Orders"); }
public IssueTracker() { var doc = new XDocument(); using (var xmlStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("LiveLinqIssueTrackerObjects.Data.IssueTracking.xml")) { Debug.Assert(xmlStream != null); XmlReaderSettings settings = new XmlReaderSettings { IgnoreWhitespace = true }; XmlReader reader = XmlReader.Create(xmlStream, settings); XElement data = XElement.Load(reader); doc.ReplaceNodes(data); } foreach (var x in doc.AsLive().Root().Elements("Employees")) { Employees.Add(new EmployeeItem { EmployeeID = (int)x.Element("EmployeeID"), FullName = (string)x.Element("FullName") }); } foreach (var x in doc.AsLive().Root().Elements("Features")) { Features.Add(new FeatureItem { ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), FeatureName = (string)x.Element("FeatureName") }); } foreach (var x in doc.AsLive().Root().Elements("Products")) { Products.Add(new ProductItem { ProductID = (int)x.Element("ProductID"), ProductName = (string)x.Element("ProductName"), }); } foreach (var x in doc.AsLive().Root().Elements("Issues")) { Issues.Add(new IssueItem { IssueID = (int)x.Element("IssueID"), ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), Description = (string)x.Element("Description"), AssignedTo = (int)x.Element("AssignedTo"), Fixed = (bool)x.Element("Fixed") }); } foreach (var x in doc.AsLive().Root().Elements("Assignments")) { Assignments.Add(new AssignmentItem { EmployeeID = (int)x.Element("EmployeeID"), ProductID = (int)x.Element("ProductID"), FeatureID = (int)x.Element("FeatureID"), }); } _issuesById = Issues.Indexes.Add(i => i.IssueID, true); _assignmentsByEmployeeId = Assignments.Indexes.Add(a => a.EmployeeID); }