问题标签 [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 回答
64 浏览

c# - 管理 2 个实体之间的两种关系

我有两个实体:UserProfile 和 Inbox

这是我的代码UserProfile

这是我的代码Inbox

如何管理Inbox和之间的这两种关系UserProfile

0 投票
1 回答
271 浏览

c# - 使用流畅的 API 编写第一类代码

我是逆向工程数据库,用于在实体数据模型向导模板中使用“数据库中的代码优先”进行代码优先使用。问题是它生成带有数据注释的类。反正有没有用 Fluent APIs 生成类?

0 投票
1 回答
105 浏览

asp.net-mvc - 如何映射存在继承的 MVC 模型

我正在尝试在我的 MVC 模型中使用继承。项目中有两个地方,用户可以记录某些设备的损坏情况。当它被移动或只是在库存盘点期间。我有: 运输 运输详情

StockCheck 库存检查详情

Details 模型都是某种对象的集合。可以针对单个 Detail 项目创建单个损坏记录。我创建了一个抽象的损坏模型,可以记录损坏的详细信息。

所以我有 2 个模型继承自 Damage TransportDetailDamage 和 StockDetailDamage

然后,我的 TransportDetail 记录可以有 0 个或 1 个 TransportDetailDamage 记录。StockCheckDetail 记录也可以有 0 或 1 个 StockDetailDamage 记录。

我目前的模型是(为简洁起见,只是运输和大多数道具被移除):

我不断收到从主体端到定义的无效键的错误。我也非常希望能够使用 Fluent API 定义字段名称,这样我就不会得到 TransportDamage_DamageID 等之类的东西

编辑:好的,我添加了一些 Fluent API,似乎可以让模型正常工作,但它似乎并不完全正确,TransportDetail 当然可以有 Optional TransportDamage 但 TransportDamage 需要 TransportDetail 存在.... .Map 确实涵盖数据库中可怕的自动字段名称通过:)

这是最好的方法吗?

0 投票
2 回答
699 浏览

c# - 实体框架 - 代码优先 - 与共享主键的一对多关系

任何人都知道如何使用 EF Code First Fluent API 实现此场景:

谢谢您的答复

0 投票
1 回答
2618 浏览

c# - 声明的导航属性类型 Project.Models.Customer.SubCustomers 与指定导航的结果不兼容

我已经查看了类似错误的答案,但我似乎无法找到我的特定错误的答案。

我正在运行迁移,并且在运行种子方法时发生错误(迁移工作正常)。

导航属性 Project.Models.Customer.SubCustomers 的声明类型与指定导航的结果不兼容。

这是一个循环引用,即客户可以有 0..* 子客户和 0..1 父客户。

客户型号:

从上下文流利的api:

从种子方法:(客户在数据库中创建,子客户不起作用)

如果有人能发现导致错误的原因,我将不胜感激。非常感谢!

0 投票
1 回答
2840 浏览

c# - 实体框架 6 和 PostgreSQL 的 Mono 中不存在列 Extent1.Id

我正在尝试使用包NpsqlNpsql.EntityFramework. 我有一个包含下表的数据库:

Crop模型如下所示:

在数据库上下文中,我将模式映射到公共,因为在 PostgreSQL 中默认情况下所有表都在公共模式中。

现在,当我打开尝试访问 DbContext 作物的视图时,我收到以下消息:

Npgsql.NpgsqlException
错误:42703:列 Extent1.Id 不存在
说明:HTTP 500.Error 处理请求。
详细信息:非网络异常。异常来源(应用程序或对象的名称):Npgsql。
异常堆栈跟踪:
在 Npgsql.NpgsqlState+d__0.MoveNext () [0x00000] 在:0 在 Npgsql.ForwardsOnlyDataReader.GetNextResponseObject(布尔清理)[0x00000] 在:0

好消息是数据库现在可以找到表(起初它不能,但它可以通过方法中的映射到公共模式OnModelCreating。但是,它找不到列名Extend.Id

为什么它试图寻找Extend.Id超出了我的范围。我们已经将Crops模型上的属性定义为Id,那么它为什么要查找Extend.Id?但考虑到这种情况,我怎样才能让它工作呢?我可以只使用属性Extend1.Id而不是创建一个数据库表Id吗?如果是这样,我该怎么做?

谢谢!

0 投票
3 回答
3549 浏览

c# - EF Fluent API Many To Many with different ID Field Names

In this question: Ef Many To Many, an answer came up on how to manually specify a linking table. But I have a slightly unique situation (which I'm sure isn't really unique).

My two tables each have an Id field. E.G.: [dbo].[Account].[Id] and [dbo].[Person].[Id]. Each of these tables in my Code-First has the following OnModelCreating:

But my [dbo].[AccountsToPersons]... table has fields E.G.: [AccountId] and [PersonId]

The AccountsToPersons table is not represented by a class in code.

I obviously already have an existing Model, but we are using EF Code-First Fluent API instead of updating model from database.

So how do I change this code to make it work with mapping different ID columns names?

When running a basic Linq To EF Query (from x in context.Accounts select x).ToList();, the query fails with the following error:

  • "Invalid Column Name 'Person_Id'."

But when running the Query (from x in context.Persons select x).ToList();, I get no error.

Other than basic typed columns, my models have these added to them:

And please note that even though my Accounts query passes and has field information, the Persons field is always null, even though I'm sure there are links in my AccountsToPersons table.

0 投票
1 回答
2393 浏览

c# - 没有为多列上的键定义键

我正在使用 C# 和实体框架。我想将对象的键定义为SimulationParameter三列(名称、StudyId、SimulationId)的组合。我不需要 ID 列,因为这三个元素的组合总是唯一的。

模拟参数:

仿真参数映射:

现在,当我尝试创建模型时,出现以下错误:

我真的不知道为什么这是无效的......

编辑1:

根据建议,我[Key]在模型中的字段上方添加了属性:

并得到一个不同的错误:

编辑2

我能够做到以下几点:

虽然它不能使用流利的方式工作,但仍然很奇怪,我会继续寻找并随时通知您。

0 投票
1 回答
1540 浏览

entity-framework - 如何在 View 中获取 IdentityUser 角色的名称?

使用 ASP.NET MVC5 用户身份,我试图在视图中显示 IdentityUser 的角色名称。

似乎 Identity 用户具有 Roles 属性,它代表 的集合IdentityUserRole,而不是IdentityRole。区别在于和IdentityUserRole之间的关联,而实际模型[+]。显然 IdentityUser 和 IdentityRole 之间没有定义导航。所以我们得到的只是 RoleId 。IdentityUserIdentityRoleIdentityRoleRoleIdentityUserRole

  1. 有没有简单的方法来获取角色名称?
  2. 使用 Fluent API,我们可以在整个项目中定义一个虚拟导航属性IdentityRoleIdentityUserRole以便在整个项目中轻松获取名称吗?
  3. 如果是有意为之,不让我们IdentityRole直接获取有什么好处?
0 投票
1 回答
297 浏览

entity-framework - EF6:访问映射表,通过代码优先流式 API 生成

我有一个通过 fluent API 生成的表,如下所示:

这工作正常,表格生成正确。但是在我的数据访问层中,如何通过实体框架在此表“友谊”上执行 CRUD 函数?因为我不能做这样的事情:

因为我的 DBContext 中没有定义“友谊”。

解决这个问题的最佳方法是什么?在数据访问层中手动创建模型或硬编码 SQL 查询?还是另一种解决方案?