5.9K Star 11.7K Fork 4K

GVPdotNET China / Furion

 / 详情

EFCore,自定义Entity包含属性:租户Id【TenantId】,使用EFCore出现异常

已完成
创建于  
2022-02-21 18:15

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue

Furion 版本号

哪个版本号?
3.0.6

Web 项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp

描述你的问题

EFCore,自定义Entity包含属性:租户Id【TenantId】,使用EFCore出现如下异常信息:

The entity type 'Tenant' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'. For more information on keyless entity types, see https://go.microsoft.com/fwlink/?linkid=2141943.

当我将属性【TenantId】,修改为【Tenantid】时(将Id的I, 改为小写i),代码可以正常运行


异常堆栈信息

已提供示例源代码

测试项目代码

⚠⚠ 必须提供完整可运行且包含错误的 Git 仓库 DEMO,DEMO 提供最简单的错误逻辑代码,否则不予处理。⚠⚠

您的代码下载地址?
https://gitee.com/YBLS/app.demo.furion/tree/master/

下载 app.demo.furion.zip 解压即可

数据库信息

  • Sqlite
  • SqlServer
  • Mysql
  • Oracle
  • PGSql
  • Firebird
  • Cosmos

期待结果

期待的结果是?
EFCore正常使用

评论 (5)

YBLS 创建了任务
YBLS 修改了描述
YBLS 修改了描述
YBLS 修改了描述
YBLS 修改了描述
展开全部操作日志

经测试,功能正常,仔细看看多租户和数据库实体配置文档。

百小僧 任务状态待办的 修改为已完成

这个问题怎么解决呢

百小僧 任务状态已完成 修改为待办的
百小僧 里程碑设置为v4.6.9

首先先说声抱歉,早期您发这个问题的时候,没有提供 Demo,然后我关闭了 Issue,后来您补充了 Demo 但是没有重新打开 Issue,直到 @小苏打饼。 回复我才重新注意到该 Issue,然后对您的 Demo 做了测试,发现确实框架存在问题。

原因是 Furion 框架底层在没有启用多租户的情况下默认忽略了 TenantId 的实体属性,所以您自定义的 TenantId 被忽略之后就出现了 The entity type 'Tenant' requires a primary key to be defined 没有自定义主键的错误。

输入图片说明

输入图片说明

输入图片说明


最终修复代码:a1c6ee8

将在今天发布新版本,同时希望能够升级到最新版后得到回复。

Furion v4.6.9 版本已发布,已修正。

升级到最新版后没问题了

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助