4

是否可以使用实体框架(代码优先)并使数据源成为XML文件?我需要使用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到XML解析槽XML的每个元素和填充物,但我正在寻找一个更自动的方式来做到这一点(如果存在)。

回答

1

您需要一些可通过ADO.NET访问的XML数据库。否则,您将实现定制EF提供程序(它仍将基于ADO.NET),以定位您的XML文件。 EF用于访问数据库。

如果您希望拥有更多的“自动化”方式,只需使用XML序列化和相关属性 - 它将与首先使用数据注释的代码相同。

1

实体框架代码很大程度上支持data sources supported by ADO.net

根据MSDN

的ADO.NET数据提供模型提供在.NET Framework的公共管理接口,用于连接到和与数据存储交互。 ADO.NET实体框架建立在ADO.NET数据提供者模型的基础之上,允许将实体框架与支持提供者可用的任何数据源一起使用。