问题标签 [ef-code-first-mapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
entity-framework - EF 如何在没有迁移历史记录表的情况下检测模型更改
我正在使用实体框架代码首先迁移。我第一次没有启用迁移。当我运行该项目时,它会创建 _migrationhistory 表,其中包含一行。
然后我删除这个表并运行应用程序,它运行成功。现在我向实体添加了一个属性并尝试运行,但它没有运行并抱怨模型与数据库不兼容。
我的问题是 EF 和数据库如何知道模型已更改或数据库与没有 _migrationhistory 表或代码迁移的模型不同?
c# - 从实体 A 继承的实体 B(使用 MapInheritedProperties )打破了 A 和 C 的关系 - 实体框架代码优先
我的模型 Item、RegistroItem 和 ItemTienda 目前有 3 个实体:RegistroItem 是从 Item 继承的,而 ItemTienda 与 Item 具有一对多的关系。我使用 Fluent API 配置了 RegistrosItems 表,如下所示:
问题是,只要我输入该代码,我的实体 ItemTienda 就会停止跟踪与 Item 的关系,并且 Code First 不会将 Foreing 键规则添加到 SQL 表 ItemsTiendas。我已经尝试了很多东西,但都没有工作,你知道可能是什么问题吗?这是实体的定义:
entity-framework - EF Code First Migration - 为复杂类型属性命名列
我正在将现有的 EF 模型转换为首先使用代码。
它有许多复杂类型,具有特定的数据库字段命名约定:
例如,这个复杂类型:
在此实体中使用:
它出现在这样的数据库表中:
所以我需要更改复杂类型的默认命名约定。我可以像这样使用 Fluent 手动更新每个列名:
问题是它ContactDetails
在整个数据库中的许多不同表中多次使用。所以我想一次性配置它们。我需要这样的东西:
但是如何填写这些{???}
部分?在这种情况下,我可以从哪里获取属性名称和类型名称?
c# - 如何使用 ASP.NET MVC 中的实体框架将记录插入具有外键的表中
我是实体框架代码优先的新手。这是我在 ASP.NET MVC 中的学习,使用代码优先创建数据库。
我有两节课:
我正在尝试向表中插入一条Student
记录,该表有一个引用该表Student
的外键。SubjectId
Subject
我正在尝试两种可能的方式:
第一种方法
在这里,我创建了一个新Subject
实例,它具有SubjectId=202
. 现在,当我创建Student
对象并将值 202 分配给 时SubjectId
,存在Insert
语句冲突。虽然有Subject
with SubjectId = 202
,那为什么会有插入冲突呢?当我调试时,我看到导航属性Subjects
在这里为空。我不明白这里的重点。
第二种方法:
但我得到一个空引用异常
对象引用未设置为对象的实例
为什么stu.Subjects
这里是空的?
所以我的问题是:
SubjectId
课堂上是什么Student
意思?即它的价值与什么有关?我们可以显式设置它,如果可以,它会引用Subject
表的主键吗?如果不是,它是否仅用于 EF 代码约定目的?同样:导航属性的作用是什么?为什么它为空,什么时候不为空?
我对导航属性的基本理解是,它是用来让EF判断两个实体之间的关系的。
任何人都可以通过示例澄清一下,我们将不胜感激。
c# - 多对多表的实体框架代码优先外键
我有这个场景:
然后我创建一个配置类来指定多对多表:
现在我必须创建一个Table3
这样的
如何为列Table1Code
和Table2Code
表添加外键Table1_Table2
?
我不需要将外键添加到Table1
and Table2
but 到 table Table1_Table2
。
c# - 使用 Entity Framework 6.1 映射字符串集合
如何使用 EF6 Code First 将字符串集合映射到数据库。
这是我的场景。我有一个包含字符串集合的书籍类
我想将此集合映射到下表。我不希望将字符串序列化为单个字段,因为我想在数据库中查询它们。
我在某处读到 EF 不支持原始集合,但这看起来像一个简单的场景,我们现在使用的是版本 6。那么这是否可能,如果可以,我如何首先使用 EF6 代码来做到这一点?
c# - 带有 EF Core 的时间戳/行版本列
我试图弄清楚我应该如何首先通过实体框架代码向 SQL Server 中的数据表添加Timestamp
/rowversion
列。
这是使用 EF Core V2.0。
我尝试了两种方法来实现这一点,第一种:
第二个通过 fluent API:
在我运行后的两种情况下Add-Migration
,我都会得到以下信息:
我本来希望该RowVersion
列是 typetimestamp
并且它的nullable
属性是false
. 这是 EF Core 的限制还是我试图不正确地执行此操作?
c# - ef core 2 - 在表“Y”上引入 FOREIGN KEY 约束“X”可能会导致循环或多个级联路径
我知道,我知道,已经存在很多这样的问题,但我不知道如何在我的场景中解决这个问题。
我有一个客户,一个有卖家,客户不一定是卖家,但所有卖家都是客户。
在我的订单中,我有一个客户和一个卖家,但是卖家里面已经有一个客户
这是我的客户实体
我的卖家实体
我的订单实体
我的订单地图
我已经添加了迁移,但是当我设置“更新数据库”时,我收到此错误消息:
在表“订单”上引入外键约束“FK_Order_Seller_SellerId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束或索引。请参阅以前的错误。
这是一个 .netcore2.0 项目,我正在使用 ef-core 2
c# - 在单个语句中为多个列设置默认值
我正在使用 EF Core Code-First,需要为多个列设置默认值。
我知道这是为一列设置默认值的语句
我有 10 个具有不同默认值的字段,想看看是否有一种简单的方法可以一次性设置所有默认值,而不是重复上述代码 10 次。
c# - 实体容器中未定义实体集或函数导入“My_Table”
我首先使用代码,一个包含大约 60 个表的数据库,标题上的错误发生在 3 个表上,我不明白为什么......
我得到的例外是“实体集或函数导入'My_Table'未在实体容器'My_Context'中定义”
这是我的 bdset
这是我在 My_Table 的 My_Context 类中的唯一参考(包括区分大小写的检查)。
如果我将变量名称更改为其他任何名称,它就可以工作。例子:
我的模型创建被覆盖:
我找不到任何问题,有没有人知道我可能缺少什么?