我正在使用EF不同的工作流程。昨天我做了一个新项目,Entity Framework 6是Nuget的第一个建议,所以我决定尝试一下,这也是一个很小的项目,完全出于学习目的,所以我想尝试,因为我主要从事EF 6的工作。我的应用程序基于Ef 5方法。解决方案的结构显示在打印屏幕中:项目Code First用于保存我的实体。为简单起见,由于我遵循了教程,因此您仅会使用一个类-CodeFirstClasses。我在那里:public class RewardContext : DbContext { //Specify the name of the base as Rewards public RewardContext() : base("Rewards") { } //Create a database set for each data item public DbSet<Purchase> Purchases { get; set; } public DbSet<Customer> Customers { get; set; } }而其他类-Customer.cs和Purchase都很简单,因此我不会在这里粘贴它们。您可以看到的另一个项目是Customer项目,上面只有一个表单和一个按钮。在按钮的Windows Forms事件上,我具有将新记录添加到两个硬编码的实体的所有逻辑。这只是其中的一部分: //some code... //Add the record and save it context.Customers.Add(newCustomer); context.Purchases.Add(newPurchase); context.SaveChanges(); MessageBox.Show("Record Added!");到目前为止,与我习惯使用click没什么不同。我可以构建项目,可以运行它,并且一切都按预期执行。但是我从标题中收到此警告:EF 5即使我主要使用Warning 1 The element 'entityFramework' has invalid child element 'providers'. List of possible elements expected: 'contexts'.,我也注意到无法从IDE-MS SQL Server Management Studio管理我的连接/数据库,但这不是Visual Studio 2012的问题。我的研究将问题/解决方案的可能范围缩小到手动更改EF 5文件,但这是我没有很多经验的领域,尤其是在IDE直到App.config照顾它的时候。因此,我将同时发布我的EF 6文件以解决此问题:来自App.config项目的一个:<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework></configuration>从我的CodeFirstClasses项目中:<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework></configuration>我发现的另一个可能的解决方案是:TestCodeFirst,我也不知道该怎么做。即使打开updating the xsd for "validating" EF config section in web/app.config file to recognize newly added EF6 elements时,我看到为该应用程序创建的数据库也已保存,并且记录似乎可以正常工作,但是我还是想解决此警告,并了解如何基于对。 最佳答案 您可以从here安装VS2012的EF6设计器,它将更新用于验证配置文件的架构。关于entity-framework - 如何解决警告:元素'entityFramework'具有无效的子元素'提供者'。可能的元素列表:“上下文”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19525902/
10-11 01:55