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數據提供者模型的基礎之上,允許將實體框架與支持提供者可用的任何數據源一起使用。