EF - 从表中获取数据给出空值
Posted
技术标签:
【中文标题】EF - 从表中获取数据给出空值【英文标题】:EF - getting data from table gives null value 【发布时间】:2021-11-29 17:17:03 【问题描述】:我正在尝试使用实体框架从 mysql 数据库中获取数据。
这是我的代码:
public IActionResult GetPersons()
using (_context)
var p = _context.Persons;
return Ok(p);
_context.Persons
在我的 DbContext 中定义如下:
public DbSet<Person> Persons get; set;
我可以在 MySQL 日志中看到,我的应用确实成功连接到服务器,并且上面的查询是正确的。
但是,当我添加 .FirstOfDefault
或其他 LINQ 方法时,查询会受到影响。
变量p
仍然是null
,原因不明...
【问题讨论】:
_context.Persons;
的类型是什么,“失败”查询是什么??
public DbSetp
.IdPerson
, p
.Created
, p
.CreatedBy
, p
.@ 987654336@, p
.ModifiedBy
, p
.PersonLabel
, p
.PersonName
FROM Persons
AS p
" - 查询在 mysql 控制台上给出了正确的结果。
是的,但您是说.FirstOfDefault
失败,p
保持为null
- that 查询是什么?
【参考方案1】:
您缺少 .ToList()
public IActionResult GetPersons()
using (_context)
var p = _context.Persons.ToList();
return Ok(p);
在此处查看基本信息:Querying Data
【讨论】:
同理。 SQLNullValue 异常。我想知道这是否以某种方式连接到 mySQL - 在我使用 MS SQL 之前,它使用几乎相同的代码。 你为 mySQL 使用了什么 NuGet 包? MySql.Data.EntityFrameworkCore (8.0.22) 非常感谢,因为在您发表评论后我设法解决了我的问题。我切换到替代 Pomelo 包,结果我得到了更精确的异常消息,我试图在模型的属性上强制转换一列(它是 Nullable DB 端)的 NULL 值。以上是关于EF - 从表中获取数据给出空值的主要内容,如果未能解决你的问题,请参考以下文章
使用 python 和 mysql.connector 从表中获取数据