【问题标题】:ASP.NET MVC: Method-Based LINQ Query of SQL Db as IEnumerable object [closed]ASP.NET MVC:SQL Db 作为 IEnumerable 对象的基于方法的 LINQ 查询
【发布时间】:2021-12-01 14:41:18
【问题描述】:

我正在尝试将数据库的所有记录查询到 IEnumerable 对象中。以下是相关代码:

数据库上下文片段

namespace WebApplicationTemp.Data
{
    public class CSVMetaDbContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder options)
        {
            var connectionString = string.Format(@"Data Source=source;Initial Catalog=CSVMetaDb;Integrated Security=True;MultipleActiveResultSets=True");
            options.UseSqlServer(connectionString);
        }
        public DbSet<CSVMeta> CSVMetas { get; set; }
    }
}

Startup.cs 片段

public void ConfigureServices(IServiceCollection services)
{
     services.AddDbContext<CSVMetaDbContext>();
}

控制器片段

private readonly CSVMetaDbContext _db;

public CSVController(ICSVService csvService, CSVMetaDbContext db)
{
     _csvService = csvService;     //Can be ignored, for other applications using IService Interface
     _db = db;
}

public IActionResult Database()
{
    IEnumerable<CSVMeta> objList = _db.CSVMeta;
    return View(objList);         //Razor View not created yet due to error
}

Model 使用 Microsoft SQL Server Management Studio 工作并包含所需数据。

但是,_db.CSVMeta 包含以下错误:

Error   CS1061  'CSVMetaDbContext' does not contain a definition for 'CSVMeta' and no accessible extension method 'CSVMeta' accepting a first argument of type 'CSVMetaDbContext' could be found (are you missing a using directive or an assembly reference?)

我可以检查一下如何解决这个问题吗?

【问题讨论】:

    标签: c# sql asp.net-mvc linq


    【解决方案1】:

    看起来像是错字:集合名称是CSVMetas

    IEnumerable<CSVMeta> objList = _db.CSVMetas; 
    

    【讨论】:

      【解决方案2】:

      我认为这是一个错字。在您的数据库上下文类中,该属性名为CSVMetas,但在您的控制器中,您调用的是_db.CSVMeta。您缺少s

      【讨论】:

        猜你喜欢
        • 2019-02-15
        • 2014-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 2011-04-25
        相关资源
        最近更新 更多