首页 > 解决方案 > ASP.NET Web 应用程序命名空间无法识别

问题描述

我创建了一个 ASP.NET Web 应用程序,Web 窗体。

我添加了 EntityFramework 6.2

我已经使用现有数据库中的代码优先映射了数据库

一切都很好,我有所有类的上下文如下:

namespace MyProject.DataModel
{
    using System;
    using System.Data.Entity;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;

    public partial class MyDBEntities : DbContext
    {
        public MyDBEntities ()
            : base("name=MyDBEntities ")
        {
        }

        public virtual DbSet<Adm0> Adm0 { get; set; }
        public virtual DbSet<Adm1> Adm1 { get; set; }
        public virtual DbSet<Adm2> Adm2 { get; set; }
        public virtual DbSet<Country> Countries { get; set; }
        ...

连接字符串是:

  <connectionStrings>
    <add name="MyDBEntities" connectionString="data source=10.11.xx.xx;initial catalog=xxxxxx;persist security info=True;user id=xxxx;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>

整个项目没有错误,但是如果我尝试访问 DbContext 是没有办法的!命名空间 DataModel 在任何地方都不存在,被完全忽略:

例子:

键入MyProject。Intellisense 不建议使用 DataModel

键入MyProject.DataModel它在 DataModel 上给出错误,说不存在。

为什么??

标签: c#asp.netentity-frameworkef-code-first

解决方案


您的解决方案不仅仅是一个项目吗?如果是这样,您应该在要使用 DbContext 的项目和包含它的项目之间添加一个引用。

来自官方文档:

要添加引用,请右键单击解决方案资源管理器中的引用或依赖项节点,然后选择添加引用

此外,请确保正在编译包含 DbContext 的项目。


推荐阅读