问题标签 [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.
c# - EF Core Code first - 关系已被使用
我还是 .NET 的新手,尤其是 ef 核心。我在使用现有数据库的代码优先方法定义实体之间的关系时遇到问题。我使用 Visual Studio Code 开发它,我不能做模型优先的方法。我有 2 个 1:1 关系的表。为了实现下面的json结构,我创建了3个实体(其中1个实体需要拆分)。根据我定义的关系,它抱怨实体已经被使用。有人可以指点我在定义关系时做错了什么吗?
我收到以下错误:
System.InvalidOperationException:不能将表 'dbo.unitDetailTbl' 用于实体类型 'contact',因为它正在用于实体类型 'address' 和可能的其他实体类型,但没有链接关系。将外键添加到主键属性上的“联系人”,并指向映射到“dbo.unitDetailTbl”的另一个实体上的主键。
表结构(1 对 1 关系)
- unitInfoTbl (unitId, 名称)
- unitDetailTbl (unitId, addr1, phone)
预期结果
楷模
语境
我尝试在 AddressId 中创建另一个属性作为 FK,并将其在上下文中映射到 unitId。它仍然没有工作,因为它在数据库中期待 unitId1 。我觉得我在模型中混合了注释和 Fluent API。
另一件事,我尝试使用以下注释隐藏地址和联系人实体中的 unitId 属性,但它们都不起作用:
[JsonIgnore]
[ScaffoldColumn(false)]
[Display(AutoGenerateField=false)]
c# - CodeFirst EF Core - 可以实现接口吗?
我对 EF Core 中的代码优先有点陌生,我正在尝试一些事情,我有点困惑如何实现以下内容(或者实际上是否可以实现)。
在我的模型中,我有一个将实体映射到案例的类,具有以下映射类
我现在正在实现该EntityModel
对象。但是,实体可以是 aPerson
或 a Company
。这两者都有共同的属性,但也有一些自然的差异。我想做的是创建一个IEntityModel
接口和两个类,如下所示
当我尝试构建它时,我得到了错误
属性“CaseEntity.Entity”属于接口类型(“IEntityModel”)。如果是导航,请手动配置此属性的关系,方法是将其转换为映射的实体类型。
否则,使用“OnModelCreating”中的 [NotMapped] 属性或“EntityTypeBuilder.Ignore”忽略该属性。
我不是 100% 确定我能做我想做的事。四处搜索让我有点困惑(这是实现类似功能的解决方案,还是我应该使用实现具有支持 aCompany
或 a所需的所有属性的实体类Person
?)
c# - 具有枚举值和索引的 ASP.NET Core MVC 代码优先复杂关系
我有一个需要复杂关系的项目:
问题是ModelBuilder
:InputFile
有一个组合的主键:inputfiletype
和ScraperUploadclassid
.
Scraperclass
需要对输入文件的多个关系:
- 一对一的属性 EocCHoiceFile 其中 InputFile.InputFileType == InputFileTypes.EOCChoiceFile
- 一对一的属性 EOCReplaceFile 其中 InputFile.InputFileType == InputFileTypes.EOCReplaceFile
...
- 一对多的 Confirmationsfiles 列表,其中 InputFile.InputFileType == ConfirmationFile
- 最后是 PrestationsFiles 列表的一对多,其中 InputFile.InputFileType == PrestationFile
谁能让我知道如何在DbContext.OnModelCreating
方法中做到这一点?
我似乎没有用modelBuilder
...来解决它。添加迁移时似乎总是会导致问题。
entity-framework-core - 在 Code First 场景中,List 项的 ParentID 为 null
我将大量对象反序列化到我的 POCO / CodeFirst 类中。这意味着我不能使用 ICollection<>。相反,我将 List<> 用于我的收藏。
然后我依赖(或想要)使用实体框架时发生的自动导航映射。
例如:
在 Member 表中自动生成一个 int MyClassID 以及一个指向 MyClass 的导航属性(在对象上)。int 属性在代码中也对我隐藏。
我现在的问题是 Array / List 项目没有正确映射:
当数组类型为 ICollection<> (正常的 CodeFirst 类型)时,我无法反序列化 XML - 所以我使用 List<> 。我不确定这是否与自动导航和身份创建有关。
但我面临的问题是,如果列表没有反向引用容器(MyClass) - 它会创建 MyClassID 字段,但它是空的(Null)。
c# - 查找不在多对多关系中的实体
我可能以错误的方式看待这个问题,但我在 EF Core 3.1 中有一个基本的多对多代码优先设置,其中 Department <-> DepartmentDay <-> Day。
第一个问题:这种关系是可选的,我可以有几天不与部门联系吗?我需要这个,因为这与营业时间有关,并且希望有一个影响所有部门的通用日期,而不必与所有部门建立特定的联系。但正如我在一开始所说的那样,我可能会以错误的方式看待这个问题。
第二个问题:如果第一个问题是真实有效的设置,我如何让那些日子没有连接到 Linq 查询中的部门?
到目前为止我所拥有的是(编辑:将 allDays 从 Hashset 更改为 List。)
还是在这里使用原始查询来提高性能更好?
编辑 2:包括整个数据模型
最初的问题中没有包含另一个关系,它可以回答我的第一个问题,即 Department 1-M DepartmentPeriod M-1 Period 1-1 Day。因此,Day 表中会有几天与 DepartmentDay 无关,而与 Period 无关,对吗?
entity-framework-6 - 使用 Entity Framework 6 Code-First 方法时,我可以直接从数据库创建索引吗?
Azure 建议我创建以下索引:
创建非聚集索引 [nci_wi_Transactions_71EA7D20388C3F47A9B9EBF2A1C7BA0C] ON [dbo].[Transactions] ([Client_Id]) 包括 ([Date], [Description], [Size], [Type]) WITH (ONLINE = ON)
是否可以直接从 MSSQL 执行此 SQL 而不会影响我的应用程序工作?或者我是否需要从代码优先应用一些迁移以使数据库上下文保持正确的状态?
c# - 在 LINQ 查询中包含映射表属性引用
我在 EF Code First Architecture 中有以下架构。
班主任
课堂教室
我已经制作了一张表格来建立与这些表格之间的关系。
现在我想从教师类访问课堂类的属性,因为我ICollection<TeacherClassroom>
在教师类中添加了一个虚拟,但我无法获取课堂类属性的数据。
到目前为止,我已经尝试过
在上面的句子中,我将 Classroom Property 设为null
.
先感谢您。