entity framework 6 添加实体必须用设计器拖吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了entity framework 6 添加实体必须用设计器拖吗相关的知识,希望对你有一定的参考价值。

参考技术A  一对多关系:两个类中分别包含一个引用和一个集合属性,也可以是一个类包含另一个类的引用属性,或一个类包含另一个类的集合属性。如在本篇接下来用到的例子Category类和Product类,要使得Category与Product之间具有一对多关系,Entity Framework Code First可以有3种体现方式:
  1>、在Category类中定义ICollection<Product> Products集合属性,同时在Product类中定义Category Category引用属性。
  2>、仅在Category类中定义ICollection<Product> Products集合属性。
  3>、仅在Product类中定义Category Category引用属性。
  多对多关系:两个类分别包含对方的一个集合属性。如在本篇接下来用到的例子User类和Role类,要使得User与Role之间具有多对多关系,即一个用户可以属于多个角色,一个角色可以有多个用户,则需要在User类中需要定义一个ICollection<Role> Roles集合属性,同时在Role类中需要定义一个ICollection<User> Users属性。
  一对一关系:两个类分别包含对方的一个引用属性。如在本篇接下来用到的例子User类和UserProfile类,要使得User与UserProfile之间具有一对一关系,则需要在User类中定义一个UserProfile UserProfile的引用属性,同时在UserProfile类中定义一个User User的引用属性。
  下面具体描述Entity Framework Code First生成外键的默认约定,并通过实例展示Entity Framework Code First处理一个表及多个表之间的关系。本回答被提问者和网友采纳

Entity Framework 如何知道要添加哪个迁移?

【中文标题】Entity Framework 如何知道要添加哪个迁移?【英文标题】:How does Entity Framework know which migration to add? 【发布时间】:2022-01-22 12:35:39 【问题描述】:

我正在尝试在实体框架的帮助下进行设置,而无需处理 SQL 的代码相关部分。

我创建了一个模型并通过包管理器控制台添加了一个迁移,一切正常,它更新并创建了表。

我想问的是实体如何知道我要添加哪个迁移。

我用过:

add-migration (and put here the name of the migration file)

但我不明白的是,它怎么知道我的桌子需要哪种型号?

或者换句话说,如果我在进行任何迁移之前有 2 个模型,会选择哪个模型?

如果有人可以帮助我,我将不胜感激。

提前致谢

【问题讨论】:

【参考方案1】:

您似乎正在使用entity framework migrations 并且对它的工作原理感到困惑。以下是解释:

Question: But the thing I don't understand how does it know which model I want for my table?

如果您查看您的项目文件夹,则有该目录 Migrations。里面写的都是migrations history logs 当我们对数据模型进行任何更改时,EF Core 会将当前模型与旧模型的快照进行比较以确定 差异,并生成迁移源文件;文件可以是 像任何其他源文件一样在项目的源代码管理中进行跟踪。 一旦生成了新的迁移,就可以通过多种方式将其应用于数据库。 EF Core 将所有应用的迁移记录在一个 特殊的历史表,让它知道哪些迁移已经 申请了,哪些没有

Question: If I would have 2 models before I did any migrations which model would get chosen?

如前所述,由于它会跟踪以前的迁移历史记录,因此在您的 old model 中,它会比较差异并覆盖最新的 未写入旧文件的更改。这就是它的工作原理。

希望以上解释能够相应地指导您并弥补您的困惑。你也可以看看official documents here

【讨论】:

以上是关于entity framework 6 添加实体必须用设计器拖吗的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework 6 将存储过程添加到数据模型后无法构建

如何在 Entity Framework db-first 项目中添加非聚集索引?

Entity Framework Core 6.0 中的新功能介绍

Entity Framework Core 6.0 中的新功能介绍

Entity Framework Core 6.0 中的新功能介绍

Entity Framework Core 6.0 中的新功能介绍