c# - 无法从 ASP.Net 核心剃须刀页面检索表行
问题描述
我是 C# 和 ASP.Net 核心剃须刀页面的新手。我认为这是一个简单的问题,但经过几个小时我仍然无法解决它。
我(目前)将我的业务逻辑(例如维护逻辑)放在 root/BLL/MaintenanceBLL/Maintenance.cs
尝试从 Maintenance.cs 读取维护表中的记录。我得到错误
CS0030 无法将类型“Club.Models.Maintenance”转换为“Club.BLL.MaintenanceBLL.Maintenance”
VS2019 在代码中对 ForEach 一词进行了红线标记。我无法解决此错误。任何援助将不胜感激。
我的代码是:
Namespace Club.BLL.MaintenanceBLL
{
public class Maintenance
{
private readonly Club.Data.ApplicationDbContext _context;
public Maintenance(Club.Data.ApplicationDbContext context)
{
_context = context;
}
public Maintenance()
{
}
public void DoMaintenance()
{
//Parse Maintenance table and action those items
//where Active=True and ActionDate has passed
var maintenances = _context.Maintenance;
foreach (Maintenance m in maintenances)
{
//do something
}
}
}
}
解决方案
用于var
自动检测类型,如
foreach (var m in maintenances)
或者
foreach (Club.Models.Maintenance m in maintenances)
原因是你必须有两个Maintenance
班级,一个在下面namespace Club.Models
,另一个在namespace Club.BLL.MaintenanceBLL
.
Namespace Club.BLL.MaintenanceBLL;
当您编写当前代码时,Maintenance
它会尝试Maintenance m in maintenances
在 currentnamespace
或 all下找到namespace
您提到的类using ...
。
您尚未添加using Club.Models;
,因此它不会找到Club.Models.Maintenance
,您的foreach (Maintenance m in maintenances)
遗嘱将被视为Club.BLL.MaintenanceBLL.Maintenance
.
但是当你写它时你_context.Maintenance
会这样,它会期望与对象循环。你提到了这会被认为是你的编译器显示错误。DbSet<Club.Models.Maintenance>
foreach (var m in maintenances)
Club.Models.Maintenance
Maintenance
Club.BLL.MaintenanceBLL.Maintenance
red line
推荐阅读
- python - 从父目录导入 .py 文件
- tensorflow - 为什么 flatten() 在 co-lab 中不起作用,而在其他用户发布的 kaggle-notebook 中起作用?
- c# - 在 LINQ 中动态添加左连接/列
- r - 如何突出显示R中列中的值
- python - 如何获取 GitLab 组(python-gitlab)中所有存储库的项目 ID?
- raspberry-pi - 无法使用公共 IP 地址访问树莓派
- javascript - 如何使用正则表达式替换特定符号后的最新字符
- spring-boot - Spring Path 变量 Url 发送百分比符号
- django - Django zappa 错误:InconsistentMigrationHistory: Migration admin.0001_initial 在其依赖accounts.0001_initial 之前应用
- c - GDB在给定一些字段值的情况下找到结构地址