问题标签 [ef-fluent-api]

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.

0 投票
1 回答
1248 浏览

c# - 异常 - ReferentialConstraint 中的依赖属性映射到存储生成的列。列:“身份证”

好的,情况就是这样......我遇到了一个奇怪的异常,并且通过stackoverflow上的各种其他答案我发现它必须与我的项目实体和一对一之间的映射有关-与图像实体的一种关系。尽管如此,我仍然无法弄清楚错误的确切原因是什么。

到目前为止,我已经阅读了这些答案,但不幸的是,它们都没有帮助我解决错误。我想它一定是非常小而且愚蠢的东西。

这是我得到的确切错误 在此处输入图像描述

我的整个模型是使用代码优先迁移创建的,我最近从数据注释更改为流畅的映射。我让 MVC 基于我的 DTO 构建了一个简单的索引、创建和编辑视图。这个想法是我可以创建一个与至少一个“投资组合”和一个或多个图像相关的项目。

项目.cs

投资组合.cs

图片.cs

图像内容.cs

这是使用的所有实体对象。我正在使用 automapper 将 DTO 的属性映射到实体对象。但是您可以假设所有 DTO 的属性与实体对象中的属性完全相同。

然后使用在上下文中加载的以下类映射实体对象。

项目地图.cs

PortfolioMap.cs

ImageMap.cs

图像内容映射.cs

BaseEntityTypeConfiguration.cs

希望有人可以帮助我解决这个问题。现在这让我发疯了!对于其他对象,保存新项目可以正常工作。但是当通过界面创建一个新项目时,我得到的只是一个带有此错误的 DbUpdateException;

有人可以帮我解决这个问题吗?

0 投票
2 回答
2546 浏览

c# - 实体框架 CodeFirst 多对多返回对象 null

我对流利的 api 和实体框架(多对多关系)有疑问。当我尝试从数据库中获取数据时,对象CompanypkdClassification. 价值CompanyIdPkdClassyficationId回报正确。

语境

pkd分类

公司PKD分类

最后一家公司

0 投票
1 回答
373 浏览

entity-framework - 如何在没有约定的情况下仅使用 fluent api 配置一对一关系

是否可以在不符合约定要求的数据库上使用 fluent api 配置一对一关系?下面我为您提供数据库和生成模型的示例。请注意,除了主键之外,表不定义任何约束和索引。

表:

从 db 生成的代码优先模型:

为了能够从 Address 导航到 Person,将导航属性添加到 Address 类:

如果程序尝试执行此查询:

运行时引发异常:“列名 'Person_PersonKey' 无效”。因为上下文没有配置任何自定义映射,它会尝试按约定查找外键,但 Owner 属性不符合约定要求,因此出现异常。所以需要添加映射。如果 Person 和 Address 之间的关系是一对多的,我们可以添加这样的配置:

并且上面定义的查询将正确执行。但是,如果 Person 类将具有指向 Address 的导航属性,那么我们将具有双向的一对一关系怎么办:

所以上面的配置将不起作用,我的问题是,是否可以在不更改数据库和属性名称的情况下对其进行配置,如果是的话,只需要使用 fluent api 应用什么配置?

0 投票
2 回答
770 浏览

c# - 如何在实体框架中使用流利的 api 为一对零..one 关系指定外键属性

我有一张桌子User和另一张桌子Company。AUser可以注册零个或一个公司。

我的用户类:

我的公司课程是:

公司使用的 fluent api 是这样的:

在我运行Add-Migration我期望的是UserId用作表中的外键User之后Company,但实体框架迁移生成的是:

问题是如何强制实体框架使用我指定的属性作为关系的外键,原因是我的代码中经常需要公司的 userId 值,我不想使用Company.User.Id表达式来获取它.

注意:我使用 Entity Framework 6.1.2 和 asp.net mvc 5

0 投票
1 回答
18405 浏览

c# - 违反主键Entity Framework Code First

我从 C# 开始,我想制作自己的数据库。

我有两个模型

当我尝试将 BModel 保存到 DB 时,出现此错误:

违反主键约束“PK_dbo.AModels”。无法在对象“dbo.AModels”中插入重复键。重复键值为 (48ee1711-8da4-46c1-a714-19e985211fed)。\r\n语句已终止。

我以为这会解决

但看起来我完全迷路了。有人可以帮我这个简单的例子吗?

0 投票
2 回答
84 浏览

entity-framework - 实体框架 Fluent API 配置

这是困扰我的事情,我有 2 个实体 --- 'Master' 和 'Slave',让我先列出它们:

基本上,

  1. 主人有奴隶名单;
  2. 从属应属于主(父);
  3. 从站有另一个主(子),然后可以有从站列表;

这里有对应的数据映射类,

这2个实体可以毫无问题地通过EF模型验证,并且可以在端到端测试期间成功创建表,运行以下代码后,

topMaster 及其从属都被插入到表中,childmaster(s) 也被插入,但它们没有与 topMaster 的从属关联,这意味着“ChildMaster”为空,“ChildMasterId”为空 guid。

我不知道数据映射类有什么问题导致这个问题。

0 投票
0 回答
425 浏览

c# - 使用 Fluent Api 设置 OData 导航属性

给定一个使用OData 4的Web Api 2.2项目,我正在使用来自第三个共享程序集的实体,我想专门为 api 配置一些实体。

例如:其中一个共享实体SharedEntityA包含一个字段BinaryValue我不想成为navigablesortablefilterable等。

问题是我无法更改共享程序集,因此我无法为其使用属性,例如:

是否可以使用Fluent Api在我的 api 项目中进行配置?

我正在 App_Start/WebApiConfig.cs 中寻找类似的东西:

该示例引发编译错误

PrimitivePropertyConfiguration 不包含 IsNotSortable 的定义

0 投票
1 回答
546 浏览

c# - C# - EF 6 关系流畅 API (1:1..0)

我在找出在 EF 6.1.3 中映射我的Client/Person类的正确方法时遇到了一些麻烦。

这是它的工作原理:

客户需要一个人,人有一个可选的客户。

FK 在 Client 类中,但我不能这样做:

我已经看过 MapKey 方法,但我不确定它是如何工作的,因为我读到它仅在您的 FK 属性未在模型中声明时使用,但在我的场景中,它在Client类中声明为PersonId 。

Person类没有对Client的导航属性,只有对Person的Client

问题:如何使用 ClientMap 类中的 Fluent API 正确映射它?

任何帮助将不胜感激。

0 投票
3 回答
8119 浏览

entity-framework - 如何使用 Fluent API 通过 ASC/DESC 排序在多列上添加索引?

我有一个使用 Entity Framework 6 - Code First 方法的 MVC ASP.NET 应用程序。

使用 Fluent API,如何使用 ASC/DESC 排序在多列上添加索引,每列都不同?

我见过许多使用多列的示例,但无法设置索引中列的排序顺序。

我想要以下列的索引:Type(ASC)、DateFor(Desc)、DateCreated(Desc)。

0 投票
1 回答
430 浏览

c# - 如何先用实体代码解决多级联路径

ATemplate可以有零个或多个Document和零个或多个MetaIndex。ADocument可以有零个或多个Index,aMetaIndex也可以有零个或多个Index

在此处输入图像描述

这代表了一个潜在的级联问题,因为删除 aTemplate将删除它Document(没关系);删除 aDocument将删除其Index,这也可以。但是当删除一个Template尝试删除的MetaIndex(也会删除Index)时会出现一个问题(一个循环)。

我明白这个问题。我认为解决它的一种方法是指定当我删除模板时,它的文档及其文档的索引被删除,以及与模板关联的元索引。但是元数据不会级联删除它的关联索引,因此不会出现循环。

在这里搜索潜在的解决方案,我试过这个:

但它不起作用:

对表引入 FOREIGN KEY 约束可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。