mysql - Entity Framework Core 5.0 没有很好地映射 mysql 查询
问题描述
我正在将 ASP .Net Core 2.1 应用程序迁移到 ASP .NET 5.0,但我在实体框架方面遇到了麻烦。如果我在 MySQL 中执行相同的查询,我的应用程序中的结果与结果不匹配
我有这个查询
puestoCajas = _dataContext.puestocajas
.Include(x => x.ObjSite)
.Include(x => x.ObjCajaState)
.Where(x => x.Enable &&
x.SiteId == user.ObjEmployee.SiteId)
.ToList();
查询是
SELECT `p`.`Id`, `p`.`Abrio`, `p`.`CajaMovementId`, `p`.`CajaStateId`, `p`.`Description`, `p`.`Enable`, `p`.`SiteId`, `s`.`Id`, `s`.`Address`, `s`.`CityId`, `s`.`Email`, `s`.`Enable`, `s`.`Name`, `s`.`Phone`, `c`.`Id`, `c`.`Description`, `c`.`Discriminator`
FROM `puestocajas` AS `p`
INNER JOIN `sites` AS `s` ON `p`.`SiteId` = `s`.`Id`
INNER JOIN `cajastate` AS `c` ON `p`.`CajaStateId` = `c`.`Id`
WHERE `p`.`Enable` AND (`p`.`SiteId` = 7);
我从 Visual Studio 输出窗口复制,当我直接在 MySQL 中执行此操作时的结果是 // 注意 CajaStateId 和 ObjCajaState 不匹配,我不知道为什么会发生这种情况。
ID | 阿布里奥 | CajaMovementId | CajaStateId | 描述 | 使能够 | 站点 ID | ID | 地址 | 城市编号 | 电子邮件 | 使能够 | 姓名 | 电话 | ID | 描述 | 鉴别器 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'4' | '员工1' | '4' | '1' | '普埃斯托 2' | '1' | '7' | '7' | '地址1 ' | '900014' | 'examplemail@gmail.com' | '1' | “圣米格尔” | '03811234567' | '1' | '阿比尔塔' | 'CajaOpen' |
在我的应用程序中,结果如下:
In my app the result is the following:
puestocajas [1]= {
Abrio = "Employee1",
CajaMovementId=4,
CajaMovements,
CajaStateId = 1,
Description = Puesto 2,
Enable = true,
Id=4,
**ObjCajaState {
Description = "Cerrada",
Id= 2
}**,
ObjSite,
SiteId
}
public class PuestoCaja
{
public int Id
public string Description
public Site ObjSite
public int SiteId
public bool Enable
public CajaState ObjCajaState
public List<CajaMovement> CajaMovements
public int? CajaMovementId
public int CajaStateId
public string Abrio
}
public abstract class CajaState
{
public int Id {get; set;}
public string Description {get; set;}
}
public class CajaOpened : CajaState
{
public CajaOpened()
{
this.Id = 1;
this.Description = "Abierta";
}
}
public class CajaClosed : CajaState
{
public CajaClosed()
{
this.Id = 2;
this.Description = "Cerrada";
}
}
解决方案
不知何故,Pomelo Entity Framework Core 没有映射导航属性。我必须在模型构建器中配置它们,它就是这样工作的。
推荐阅读
- javascript - 关闭三星手机浏览器“选择下拉弹出”
- mysql - 读取已提交和事务错误 1213:死锁
- c# - 将类属性绑定到 UWP 组合 API 表达式
- dataframe - 如何在执行 spark dataframe.write().insertInto("table") 时确保正确的列顺序?
- python-3.x - 未加载 YAML 文件中的 Flask 应用程序配置
- .net - SSRS Custom Assembly Permissions issue
- sql - 使用 += 连接字符串
- javascript - 将 Perl Selenium::Remote::Driver 用于稍后加载页面的 Javascript
- c# - 如何读取在线存储的json文件并在找到时将图像更改为url
- ubuntu-16.04 - 如何为在 ubuntu xenial 上运行的花园容器配置 cgroup cpu 配额