【问题标题】:Why aren't my tables showing up in my DbContext?为什么我的表没有出现在我的 DbContext 中?
【发布时间】:2016-11-07 02:09:46
【问题描述】:

长话短说,如果您查看my project,您可以看到我有一个automatically generated model,但是在导入该模式的命名空间并尝试使用它之后

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using LRVault.Models;
using System.Data.Linq;

namespace LRVault.Repositories
{
    public class ThreadRepository : VaultCRUD
    {
        public void AddOrUpdateThreads(IEnumerable<Thread> threads)
        {
            VaultContext.???
        }
    }
}

我无法获取表格,即 VaultContext.Posts 无法识别。我错过了什么?

编辑:父类是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq;
using LRVault.Models;
using System.Data.Entity;

namespace LRVault.Repositories
{
    /// <summary>
    /// Serves as base class for the CRUD operations
    /// </summary>
    public abstract class VaultCRUD : IDisposable
    {
        public DbContext VaultContext { get; private set; } 

        public VaultCRUD()
        {
            VaultContext = new LRC_VAULTEntities(); 
        }

        public void Dispose()
        {
            VaultContext.Dispose();
        }
    }
}

【问题讨论】:

  • 为什么您的using 声明中没有new?这样可以编译吗?
  • 父类的构造函数有VaultContext = new LRC_VAULTEntities();
  • 父类中VaultContext的作用域是什么?能否请您发布父类的代码?
  • @DavidTansey 当然,我会发布它

标签: c# .net asp.net-mvc entity-framework visual-studio


【解决方案1】:

您需要将 VaultContext 属性转换为LRC_VAULTEntities,才能访问这些表:

(VaultContext as LRC_VAULTEntities).

DbContextLRC_VAULTEntities 的基类,但“表”在LRC_VAULTEntities 中。

【讨论】:

    【解决方案2】:

    你需要创建一个实例,

    using(var context = new  VaultContext())
    {
    }
    

    【讨论】:

      【解决方案3】:

      VaultContext 实例声明为 DbContext 类型,它与您的表无关,您必须将其类型更改为 LRC_VAULTEntities,执行此操作,您将在继承的表中获得您想要的表类

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-18
        • 2013-07-21
        • 2021-07-30
        • 2015-09-04
        • 2013-03-15
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多