是否可以使用Entity Framework(代码优先)并将数据源作为XML文件?我需要使用XML文件中的值填充域对象。
XML文件具有以下结构:
<Person name="John" age="12">
<Products>
<Product id="1" name="Product 1" />
<Product id="2" name="Product 2" />
<Product id="3" name="Product 3" />
</Products>
</Person>
C#域对象具有以下结构:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public ICollection<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
}
我可以使用Linq to XML来解析XML的每个元素并填充对象,但我正在寻找一种更自动化的方法(如果存在)。
答案 0 :(得分:1)
实体框架代码主要支持data sources supported by ADO.net。
根据MSDN:
ADO.NET数据提供程序模型在.NET Framework中提供了一个通用的托管接口,用于连接到数据存储并与之交互。 ADO.NET实体框架构建于ADO.NET数据提供程序模型之上,允许将实体框架与任何支持提供程序可用的数据源一起使用。
答案 1 :(得分:1)
您需要一些可通过ADO.NET访问的XML数据库。否则,您将实现针对XML文件的自定义EF提供程序(仍将基于ADO.NET)。 EF用于访问数据库。
如果您想要更多“自动化”方式,只需使用XML序列化和相关属性 - 它将与使用代码首先使用数据注释相同。