EF 4.1 代码首先使用现有数据库。映射 Fks、表等。需要澄清

发布于 2024-11-03 13:23:36 字数 449 浏览 0 评论 0原文

我首先学习代码,并且我有一个要与现有数据库一起使用的项目。

我对我想要做什么有点困惑。我将解释:

  • 我是否需要为现有数据库中的每个表创建一个实体配置?
  • 在每个表的 EntityConfiguration 中,我是否需要创建外键关系?
  • 我需要为现有数据库中的每个表执行 ToTable 吗?
  • 是否有任何免费工具“codeplex”指向现有数据库会生成此 codeFirst 内容?

我似乎很少有关于“现有数据库的 EF Code First”的博客,但我不确定或不清楚我是否需​​要创建这个东西,否则我会收到像“MyColumn_MyColum”这样的奇怪错误,基本上就好像 codeFirst 正在尝试构建一样一些FK什么的。

有人可以澄清一下吗? 多谢。我知道问题很少,但如果你能回答 01 或 2 那就没问题了。

再次感谢

I am learning code first and I have project to be used with an existing database.

I am a bit confused of what I meant to be doing.I will explain:

  • Do I need to create an entityconfiguration for each table in my existing database?
  • Within this EntityConfiguration for each table do I need to create foreign key relationships?
  • Do I need to do a ToTable for each table in my existing database?
  • Is there any free tool "codeplex" that pointing to an existing db will generate this codeFirst stuff?

I have seem few blogs about "EF Code first with existing db" but I am not sure or was not clear to me If Need to create this stuff or I will be getting strange errors like "MyColumn_MyColum" basically as if codeFirst is trying to build some FKs or something.

can somebody clarify?
thanks a lot. I know there are few questions but if you can answer 01 or 2 that would be fine.

thanks again

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

燕归巢 2024-11-10 13:23:36

如果您希望生成代码,请使用 使用 DbContext API 的数据库优先方法。只需从数据库创建 EDMX 文件,然后让 DbContext Generator 模板为您生成所有实体和上下文。

DbContext Fluent API 主要针对代码优先的开发方法,其中 EF 将根据您提供的代码为您创建数据库。它可以与现有数据库一起使用,但需要 EF 为您提供的更多技能和对映射的理解。

一般来说:

  • 如果遵循一些命名约定(实体名称是表名称的单数形式,所有属性具有相同的名称,表和实体中的主键是),则不需要为每个表提供EntityConfiguration命名为 Id 或 EntityNameId 等)。
  • 如果您遵循公开导航属性以及可能还有外键属性的约定,则无需手动定义关系。问题可能出在多对多键和连接表的命名上。
  • 仅当您的实体不遵循命​​名约定或者映射某些高级继承或拆分时,才需要 ToTable

EF 使用许多默认约定 驱动名称的定义方式。约定可以被删除。

如果您为每个表定义EntityConfiguration,您将不会做任何错误 - 它至少可以让您了解需要什么,并且您的映射将是明确的/自记录的。

If you want the code to be generated for you use database-first approach with DbContext API. Simply create EDMX file from your database and let DbContext Generator template generate all entities and context for you.

DbContext Fluent API is mainly targeted to the code-first development approach where EF will created database for you from the code you provided. It can be used with existing database but it requires much more skills and understanding of mapping wich EF can provide to you.

Generally:

  • You don't need to provide EntityConfiguration for each table if you follow some naming conventions (entity name is singular form of table name, all properties have the same name, primary key in table and entity is named as Id or EntityNameId, etc.).
  • You don't need to define relationships manually if you follow conventions with exposing navigation properties and possibly also foreign key properties. The issue can be naming of many-to-many keys and junction tables.
  • ToTable is needed only if your entity does not follow naming convention or if you map some advance inheritance or splitting.

EF uses a lot of default conventions which drive how the names should be defined. Conventions can be removed.

You will not do anything wrong if you define EntityConfiguration for each table - it will at least allow you learning what is needed and your mapping will be explicit / self documented.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文