【问题标题】:Creating new entities vs customizing existing entities创建新实体与自定义现有实体
【发布时间】:2011-10-21 05:36:11
【问题描述】:
我在网上搜索了创建新实体、创建新实体与自定义现有实体等的好处,但我没有找到任何强烈支持这些东西的东西,并且非常具体地在哪里使用自定义实体或在哪里创建新实体在 C# 中。
我有一些想法想与你分享,并希望得到你的反馈和支持链接。
创建新实体的优点是您可以定义自己的类并将其用作实体。它允许您在类类型定义中避免部分关键字。不使用 partial 关键字将有助于通过减少处理开销来更快地编译您的应用程序。不使用 partial 的另一个好处是我们不会错误地获得同一个函数的多个实现,因为我们可以使用继承来避免这种情况。
其次,有时修改事物比从头开始实施更典型。
【问题讨论】:
标签:
c#
ado.net
wcf-data-services
ado.net-entity-data-model
【解决方案1】:
通常,当您将实体数据模型与 Database First 或 Code First 结合使用时,生成的代码将包含您的标量属性和导航属性以及您可以使用的一堆事件和部分方法。
如果您不希望 EF 创建它,您必须自己编写它,您最终会得到同样可以生成的代码。
我从来没有想过你不愿意使用 partial 关键字的原因。这是将生成的代码与您自己的手写扩展分开的好方法。我不会担心编译时间。如果您在访问部分类的成员时查看 Intellisense,您会发现编译器已经在后台计算出了所有内容,而您甚至没有注意到它。
因此,如果您使用数据库优先或代码优先方法,那么让实体框架为您生成实体并没有错。当然,在如何生成代码方面你还有很多选择。 POCO 模板将生成漂亮、干净的类,并且与数据库的耦合最小。
如果您真的想从头开始创建完整的实体,您可以随时查看 Code Only。这是一种技术,实体框架将推断从 POCO 实体到数据库的数据库映射(必要时通过流畅的 API 提供一些帮助)。