ADO.NET DbContext 生成器与 ADO.NET Poco 实体生成器 (ObjectContext)

2023-11-21

我即将开始实现一个项目的数据访问基础设施,该项目是使用 DDD 方法构建的(这是我第一次尝试 DDD,所以要温柔;-) ).

我将使用实体框架。到目前为止,我一直在研究朱莉·勒曼(Julie Lerman)在她的伟大著作中教授的方法,编程实体框架, where ADO.NET POCO 实体生成器使用,对 T4 模板进行一些更改并添加一些自定义代码。
今天我开始阅读有关 EF4.1 和ADO.NET DbContext 生成器, using 数据库优先方法,我正在尝试决定我应该选择哪一种。

DbContext 和 EF4.1 在 DDD 上的方法似乎是比 POCO Entities 更好、更干净的方法,但我担心它可能会在不久的将来导致一些问题,因为 EF4.1 仍处于 RC 状态。

From ADO.NET 团队博客,我知道EF4.1does not包括:

  • 枚举支持
  • 空间数据类型支持
  • Code First 中的存储过程支持
  • Code First 中的迁移支持
  • Code First 中的可自定义约定

根据我的理解,因为我将使用数据库优先还有少量功能未包含在内。

总之,我的问题是:
我可以更换吗POCO 实体生成器使用 EF4.1 DbContext 生成器?


从一个角度来看cleanPOCO实体的创建,两个生成器之间没有区别。两个生成器生成相同的实体,但是,ADO.NET POCO 实体生成器基于ObjectContext的 API,而 ADO.NETDbContext生成器基于DbContext's API.

DbContext 的 API 有一些非常好的新功能(本地、导航属性查询等),并且 API 在某种程度上得到了简化,但同时看起来 DbContext API 中缺少 ObjectContext API 中使用的一些功能(或者至少它具有还没有被充分探索)。

EF 4.1 RC 已上线。这意味着您可以用它构建一个真正的应用程序,因为 API 在 RTW 中不会改变(只会修复错误)。 RTW 应该在下个月发布,所以我认为在最终版本发布之前您还没有准备好您的应用程序。

ObjectContext API or DbContext API? ObjectContext文档和博客文章更好地涵盖了 API。你可以找到很多关于它的例子。它的局限性也是众所周知的。DbContextAPI 是新版本。这是一个非常有前途的版本,主要是因为代码优先的方法。博客文章的数量仍然非常有限,没有书籍,API 也没有得到足够的验证。所以这取决于你是否准备好迎接新的 API 了?如果没有,那么ObjectContextAPI 仍然是一个不错的选择,因为您不需要代码优先的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADO.NET DbContext 生成器与 ADO.NET Poco 实体生成器 (ObjectContext) 的相关文章

  • 如何使用自定义 DbFunction 将字符串转换为小数

    我有一个将小数 和其他类型 保存为字符串的表 我想在数据库上下文上编写一个 Linq 查询 该查询将转换为数据库转换而不是本地转换 出于性能原因 This 非工作的example 从概念上讲是我想要实现的目标 using var conte
  • 实体框架代码优先 - 外键约束问题

    我是 EF 代码优先主体的新手 目前不知道该怎么做 我有 2 个 POCO 类 public class Problem public int ProblemID get set public int UserID get set publ
  • 在实体框架 6 中使用 SqlQuery>

    我正在尝试在 EF 6 中执行 SQL 查询 select查询返回两个字符串列 例如select a b 并且可以有任意数量的行 我想将结果映射到字典 但我无法摆脱以下错误 错误 1 无法将类型 System Data Entity Inf
  • EF6 不从数据库生成外键关联

    PROBLEM 我正在尝试使用数据库优先方法创建 EF6 模型 简单来说 我有2张桌子tblUser and tblMilkMan上有外键关系UserID柱子 但是当我创建一个新的 EDMX 图并添加 2 个表时 我看不到其中的关系 未创建
  • 实体框架、LinqToSQL 和 sql 注入

    完全使用 Linq To SQL 或实体框架的项目是否有可能遭受 SQL 注入 我认为这可能不是因为 ORM 生成的 SQL 应该是免 SQL 注入的 但我不确定 当您按预期使用这些框架时 即直接使用实体 表 那么就不会 所有字符串比较 即
  • .edmx 文件的用途是什么?

    edmx 文件的用途是什么 阅读 CSDL SSDL 和 MSL 规范 在我看来 edmx 文件仅在设计时使用 我们打算将它与其他 edmx 一起分发吗 看来我们需要分发 ssdl 和 或 csdl 文件 EDMX 是 Visual Stu
  • 如果您创建一个DomainService,公开一个实体,您可以访问聚合实体吗?

    假设您创建一个 RIA DomainService 并且包含一个Person 如下所示 其中的实体 您可以访问该对象上的聚合实体吗 例如 如果我有这样的实体 请记住 这是一个简单的表示 它们是通过 EF4 设计器建模的 public cla
  • TypeConverter 阻止 EntityFramework 中的 ApplyPropertyChanges

    我遇到了一个有趣的问题 希望不仅对我来说有趣 我正在运行 Entity Framework 1 NET 3 5 和 ASP NET MVC 2 我有一个 Customer 类 它与 Country 类具有多对一的关系 换句话说 Countr
  • .NET 5 EF Core SaveChangesAsync 因错误而挂起

    尽管这个问题有很多结果 但没有一个真正给我明确的答案 每次我尝试通过 AddAsync 和 SaveChangesAsync 方法插入错误数据 例如重复的主键 时 我都会看到以下日志 执行 DbCommand 失败 15 毫秒 我还在 SQ
  • 使用 DbContext 接口注册 AspNetCore 2.1 Identity 系统

    我正在开发 Asp Net Core 2 1 Web Api 我在用Microsoft Extensions DependencyInjection AspNetCore Identity and EntityFrameworkCore 在
  • 有没有办法将所有内容都包含在 dbcontext 中?

    当查询一个DbContext急切加载时 需要Include Navigation 为了填充导航属性 然而 在某些情况下 我想简单地Include all实体的导航属性 有没有办法做到这一点 或者有办法做到这一点 我假设你可以反思 但我宁愿避
  • 实体框架映射枚举:指定的值不是类型“Edm.Int32”的实例参数名称:值

    我试图将实体框架查询的结果返回到我自己的 dto 类中 同时映射我的枚举 TradeType 我收到以下错误 指定的值不是类型 Edm Int32 的实例参数名称 值 知道如何修复或解决方法吗 Thanks public IEnumerab
  • EntityTypeConfiguration - 什么是测试数据库映射的干净方法?

    背景 我公司当前的结构是使用 Plinqo Linq to Sql 创建 数据访问对象 然后使用一组自定义的 CodeSmith 模板来构建 业务对象 长话短说 这两组对象紧密耦合 并且使用 Linq to SQL 会导致非常丑陋的解决方法
  • EF4 中的 Datetime2 转换

    好吧 在花了无尽的时间谷歌搜索答案之后 我必须在这个问题上添加另一个问题 我有一个包含 2 个日期时间字段的表 由 VS 2010 中的 EF4 EDMX 设计器生成 SQL 2008 中生成的字段是 datetime 而不是 dateti
  • 如何在 MVC5 中创建两种类型的用户?

    我正在创建 MVC5 应用程序 并且已经在使用 ASP NET Identity 来创建用户 因此 我已经有了 AspNetUsers 表 每当用户注册时 我都会在那里获得一个条目 我还有一个管理员角色 我可以手动指定哪个注册用户是管理员
  • EF 迁移迁移到 0 调用初始创建关闭

    我正在尝试找出将迁移降低到空数据库的语法 就像在初始创建迁移中调用 down 方法一样 有谁知道在迁移中调用 Down 方法的正确语法与此类似 Update Database StartupProjectName Infrastructur
  • C# 实体框架我们应该使用 POCO.Id 还是仅使用 POCO 设置关系?

    我在服务方法中遇到一种情况 将 POCO 分配为另一个 POCO 的子对象无法按预期工作 我正在使用实体框架 4 public void ChangeOrderCurrency Currency currency order Currenc
  • 实体框架中的分页

    在实体框架中 使用 LINQ to Entities 数据库分页通常按以下方式完成 int totalRecords EntityContext Context UserSet Count var list EntityContext Co
  • 如何计算关联实体而不在实体框架中获取它们

    我想知道这个问题已经有一段时间了 所以我认为值得使用我的第一篇 Stack Overflow 帖子来询问它 想象一下我正在与关联的消息列表进行讨论 DiscussionCategory discussionCategory reposito
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person

随机推荐