Entity framework 是否可以获取任何数据库';s元素作为一组可查询的类,并使用EF?
我正在尝试制作一个应用程序,在这个应用程序中,开发人员和最终用户都可以从关系数据库(在运行时选择)中检索数据,而无需编写任何SQL代码(最好在与数据库交互时不进行字符串连接)。 该应用程序的目的是实现两件事:表达式树生成器的GUI和由其生成的树的XML序列化 我想问一些关于如何使事情顺利进行的指导或提示。我不希望其他人为我写这篇文章——这是我的项目,我将是编写代码的人 因此,我的问题是:Entity framework 是否可以获取任何数据库';s元素作为一组可查询的类,并使用EF?,entity-framework,class,xml-serialization,data-modeling,extraction,Entity Framework,Class,Xml Serialization,Data Modeling,Extraction,我正在尝试制作一个应用程序,在这个应用程序中,开发人员和最终用户都可以从关系数据库(在运行时选择)中检索数据,而无需编写任何SQL代码(最好在与数据库交互时不进行字符串连接)。 该应用程序的目的是实现两件事:表达式树生成器的GUI和由其生成的树的XML序列化 我想问一些关于如何使事情顺利进行的指导或提示。我不希望其他人为我写这篇文章——这是我的项目,我将是编写代码的人 因此,我的问题是: 在运行时仅使用连接字符串是否可以创建对象模型并在集合中寻址DB元素?例如,所有表、视图、函数和存储过程的列表
Borislav这些问题在理论上很重,在应用上却很轻,因此很难理解你想要完成什么。根据我从你们的问题中所能理解的,以下是我最好的答案。如果您能更新一些关于您的需求的详细信息,我可以对它们进行优化
1:这听起来像“我的实体模型是否可以在运行时自动生成,并使用connectionstring包含我的所有数据库对象?”: 否。您的实体模型由实体数据模型(即
MyModel.edmx.
)定义。这用于生成对象服务类mymodelnities.
该模型必须存在且可用,以便实体框架提供程序对其执行查询
2:如果“表达式树”是指lambda或LINQ语法:
任何实现IEnumerable、IQueryable或其他类似接口的集合对象都可以使用LINQ(来自EntitySet中的i…选择i
)或lambda(),其中(x=>x.Id==5)
)语法进行查询
3:如果您的意思是,您是否可以单独使用EDM定义(CSDL、SSDL、MDL)直接查询数据库:
这就是LINQtoEntities所做的:将LINQ查询转换为SQL查询。你为什么要重塑L2E提供商
4:实体对象序列化在EFV1中有点奇怪(读:坏了)。实体对象带有很多EF包袱(它们派生自EntityObject并带有额外的属性),因此序列化可能很困难。它对您的效果如何将取决于您的实体对象以及它们序列化后您对它们所做的操作。这些问题重于理论,轻于应用程序,因此很难理解您试图实现的目标。根据我从你们的问题中所能理解的,以下是我最好的答案。如果您能更新一些关于您的需求的详细信息,我可以对它们进行优化
1:这听起来像“我的实体模型是否可以在运行时自动生成,并使用connectionstring包含我的所有数据库对象?”: 否。您的实体模型由实体数据模型(即
MyModel.edmx.
)定义。这用于生成对象服务类mymodelnities.
该模型必须存在且可用,以便实体框架提供程序对其执行查询
2:如果“表达式树”是指lambda或LINQ语法:
任何实现IEnumerable、IQueryable或其他类似接口的集合对象都可以使用LINQ(来自EntitySet中的i…选择i
)或lambda(),其中(x=>x.Id==5)
)语法进行查询
3:如果您的意思是,您是否可以单独使用EDM定义(CSDL、SSDL、MDL)直接查询数据库:
这就是LINQtoEntities所做的:将LINQ查询转换为SQL查询。你为什么要重塑L2E提供商
4:实体对象序列化在EFV1中有点奇怪(读:坏了)。实体对象带有很多EF包袱(它们派生自EntityObject并带有额外的属性),因此序列化可能很困难。它对您的效果将取决于您的实体对象以及序列化后您对它们所做的操作。再次感谢dave的pos
Table.Select(t => t.Col1, t.Col2, Col3)
foreach(String UsersChosenColumn in TableColumnsArray)
XDocumentXElement(UsersChosenColumn, (Table.Select(t => t.TableColumnsArray[UsersChosenColumn]))
<Order>
<Name>Some Order Name</OrderName>
<Price>Some Price</Price>
<Products>
<Product>
<Name>Some Product Name</Name>
<Manufacturer>Shady Company Inc</Manufacturer>
</Product>
<Product>
<Name>Some Product Name 2</Name>
<Manufacturer>Another Company (TM)</Manufacturer>
</Product>
</Products>
</Order>