我已经创建了一个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错误,提示该错误不存在。
为什么?
答案 0 :(得分:0)
您的解决方案中不仅有一个项目? 如果是这样,则应在要使用DbContext的项目和包含它的项目之间添加引用。
摘自官方文档:
要添加引用,请在解决方案资源管理器中右键单击“引用或依赖项”节点,然后选择“添加引用”。 Source
此外,请确保正在编译包含DbContext的项目。