【发布时间】:2019-02-23 18:20:09
【问题描述】:
所以我试图联系 MySQL 数据库以检查玩家帐户是否存在,如果存在则获取该数据。但我不知道 MySQL 函数在 NET Core 中是如何工作的(使用 pomelo mysql)
到目前为止我有这个:
public PlayerData Account
{
get
{
using (var db = new DataDbContext())
{
return db.Players.Include(x => x.PlayerName == this.PlayerName).SingleOrDefault();
}
}
}
但我不知道如何对此进行检查以查看该帐户是否存在,以及是否可以获取数据
PlayerData 类 PlayerData.cs
DataDbContext 类DataDbContext.cs
(添加了 github 链接,因为我无法将代码放在这里)
【问题讨论】:
-
你有什么问题?如果它返回
default对象,那么它不存在,否则它将返回一个带有填充数据的PlayerData对象。 -
.Include 不会像您认为的那样做。只需尝试
db.Players.SingleOrDefault(x => x.PlayerName == this.PlayerName);。这将变成 SQL 中的 WHERE 子句。如果它返回null或默认对象,则记录不存在。如果它返回记录,那么它会返回。顺便说一句,您的代码是标准实体框架代码,它根本不特定于 MySQL 数据库。找一个实体框架教程,它会变得容易得多。 -
"Include(x => x.PlayerName == this.PlayerName)"不是mysql函数,它的实体框架。你可以考虑return db.Players.Where(x => x.PlayerName == this.PlayerName).SingleOrDefault() -
好的,谢谢大家。这看起来很奇怪,直到现在我只使用 SQL 命令和东西。这是新的,哈哈,我会看看关于实体框架的教程,我会解决这个问题
标签: c# entity-framework asp.net-core asp.net-core-2.0