C# 实体框架4.1 DbContext生成器问题
我是实体框架4.1的新手,我真的很想为我的模型转换到POCO类。我发现,使用安装EF4.1时提供的“DbContext生成器”项,这非常容易。它完全按照我的要求做了,并为我现有的EDMX模型生成了DbContext对象和所有POCO 我运行了这个应用程序,并测试它是否仍在工作。是的。很高兴我删除了EDMX文件和T4模板,并开始重新组织我的新POCO。然而,在再次正确构建之后,我遇到了一个运行时问题。实例化DbContext时,无法找到元数据文件:.csdl、.ssdl、&.msl(我真的不知道它们是什么,只是它们是所有EF连接字符串的一部分) 放回我的EDMX后,它又正常运行了。我真的不想要EDMX文件了。我真的很想坚持POCO类,忘记EDMX曾经存在过;特别是因为我不希望它运行那些T4模板并重新生成我的POCO 我有四个相关问题:C# 实体框架4.1 DbContext生成器问题,c#,.net,entity-framework,entity-framework-4.1,poco,C#,.net,Entity Framework,Entity Framework 4.1,Poco,我是实体框架4.1的新手,我真的很想为我的模型转换到POCO类。我发现,使用安装EF4.1时提供的“DbContext生成器”项,这非常容易。它完全按照我的要求做了,并为我现有的EDMX模型生成了DbContext对象和所有POCO 我运行了这个应用程序,并测试它是否仍在工作。是的。很高兴我删除了EDMX文件和T4模板,并开始重新组织我的新POCO。然而,在再次正确构建之后,我遇到了一个运行时问题。实例化DbContext时,无法找到元数据文件:.csdl、.ssdl、&.msl(我真的不知道它
这样不行。如果您决定使用DbContext生成器,则表示将在EDMX文件中描述您的映射。在编译过程中,EDMX文件被分解为三个独立的文件,扩展名分别为.ssdl、.csdl和.msl。这些元数据文件描述您的数据库、实体以及从数据库到实体的映射。默认情况下,这些文件作为资源存储在编译的程序集中,并从传递给
DbContext
实例的连接字符串中引用。如果要使用生成器创建的DbContext
,则必须将EDMX文件保留在项目中。它与EFv1中使用的映射方法相同,EFv4=它不是代码优先
代码优先意味着没有EDMX和T4模板为您生成映射和代码。在正常情况下,代码首先意味着在拥有任何数据库之前编写类,并且数据库由EF创建。许多人在现有数据库中使用这种方法,并手动将他们的类映射到现有数据库,但这需要一些EF方面的知识/经验(或者您可以在这里提出有针对性的问题,我们将帮助您)
上下文需要元数据来执行映射和SQL命令生成。EDMX映射策略使用上述XML文件中定义的元数据。代码优先映射策略使用一些默认约定、fluent API或数据注释从编译后的代码中获取元数据
有一个单独的项目允许从现有数据库生成代码优先映射-我在您的示例中指出了该项目
简单的回答是,在使用dbcontext生成器时需要.edmx文件。如果您想先使用代码,您必须手动描述模型,或者使用实体框架power tools CTP1对代码优先模型进行反向工程。power tools非常棒!这是一个真正的反向发动机