gpt4 book ai didi

c# - 如何使用 EDMX 文件的映射生成 Entity Framework 6.x POCO 类?

转载 作者:可可西里 更新时间:2023-11-01 08:29:31 24 4
gpt4 key购买 nike

我正在将广泛的 EDMX 模型转换为 POCO 类。我需要从数据库优先方法(带 ObjectContext 的 EDMX)转到纯模型优先方法(没有 EDMX 文件的 DbContext)。我需要使用最新的 Entity Framework 稳定版本:6.1.1。

我测试了一些方法:

  • 通过右键单击 EDMX 设计器中的空白区域添加 EF 6.x DbContext Generator 代码生成项。这工作正常,但它不添加任何映射。通过这种方法,我仍然必须使用 EDMX 文件。这不是完整的代码优先。
  • 使用EF 5.x DbContext Fluent Generator for C# .这会在设计时触发异常。我无法使用它。我不知道那是不是因为我的 VS Entity Framework 工具已经更新到 6.x。在评论中使用替代 TT,这表明它可以与 EF 6.0 一起使用也无济于事。
  • 使用EntityFramework Reverse POCO Generator .这是最糟糕的,因为它不会考虑我的任何类和导航属性重命名。
  • 使用Entity Framework Power Tools Beta 4 .同样,它只支持从数据库生成,不支持从 EDMX 文件生成。

我的要求:

  • 我需要输入的是 EDMX 文件,而不是数据库。
  • 我需要输出是具有 Fluent 映射的完整 Code First 方法。
  • 我需要考虑在 EDMX 中定义的所有导航属性名称,否则它会破坏大型代码库,甚至从 ObjectContext 迁移到 DbContext 也会破坏。

你认为我去哪里比较好?

最佳答案

嗯,我不认为有一个简单的一键式解决方案。

在你的 edmx 文件下面。除了 xx.Designer.csxx.edmx.diagram 之外,还有两个文件可用.. 称为 xx.Context.ttxx.tt 其中 xx 是您的 edmx 模型的名称。

这些是生成 dbcontext 和 poco 对象的 t4 模板。您的所有 poco 对象都将在 xx.tt 文件下创建,而 dbcontext 在您的 xx.Context.tt 文件下创建。

您现在必须将它们移动到单独的文件中。如果您使用的是 EF6,这会容易得多。并且生成的文件已经在使用 DbContext 而不是 ObjectContext。

关于c# - 如何使用 EDMX 文件的映射生成 Entity Framework 6.x POCO 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27405734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com