gpt4 book ai didi

c# - 我应该/可以将 Entity Framework 用于非标准 CRUD 吗?

转载 作者:行者123 更新时间:2023-11-30 16:24:04 24 4
gpt4 key购买 nike

我正在编写一个带有数据库的应用程序,该数据库具有稍微不寻常的架构。至少我认为这很不寻常,我很少做数据库的事情。

我所有的书都告诉我应该使用 Entity Framework(或其他一些 ORM)进行数据库访问,但它们给出的示例总是标准的 CRUD。每个实体一个表,每个对象一行,事件记录等。

我的模式使用不相交的子类型,所以每个实体有多个表,并且有修订历史,所以编辑实际上创建了一个新行,但只在一个表中(取决于编辑的字段)

EF 是迎合这种自定义行为还是面向传统模式?我的理解是,我创建了一个模式或领域对象,数据库操作代码是自动生成的。我可以覆盖默认行为吗?我还能如何告诉 EF 我的自定义行为?

如果 EF 能让我的生活更轻松,我非常愿意学习它,但我不想花很多精力去学习一个框架,我最终会为了让它做些什么而奋斗我想。如果是这种情况,我宁愿滚动自己的存储库并自己处理 SQL。

最佳答案

这个问题太抽象了,无法明确回答。 EF 提供了一些高级映射方案,其中可以将更多表映射到单个实体,但它定义了严格的规则来实现这一点。或者,您可以映射数据库 View 或自定义 SQL 查询,组合表中的数据以形成您的实体。

更复杂的是您的第二个要求 - 它通常需要编写您自己的 SQL/存储过程并将其映射到对表执行的 EFs CUD 操作。此 SQL 代码将包含部分更新规则,因为 EF 更新整个实体而不仅仅是受影响的记录。如果您使用映射 View 或查询,您必须将这些 CUD 操作映射到自定义 SQL 或存储过程,否则您的实体将是只读的。

结论:有可能实现你想要的但并不简单,它需要高级的 EF 知识并且你仍然会编写一些 SQL。

关于c# - 我应该/可以将 Entity Framework 用于非标准 CRUD 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079487/

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