实体框架代码首先使用XML作为数据源

时间:2012-07-16 07:19:29

标签: c# asp.net-mvc entity-framework xml-serialization code-first

是否可以使用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的每个元素并填充对象,但我正在寻找一种更自动化的方法(如果存在)。

2 个答案:

答案 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序列化和相关属性 - 它将与使用代码首先使用数据注释相同。