我在Visual Studio 2015中从我的数据库生成了一个ADO.NET数据模型,myEntities.Context.cs
中生成的类名为myEntities
,并且继承自DbContext
。
我想通过LINQ从MyPage.cs
中的代码中的模型中提取对象数据。
从我的书和教程中,我可以看到,为了实现这一点,你创建了一个模型类的实例,在我的例子中myEntities
并在其上运行LINQ查询。
然而,当我尝试实例化这个类时,却找不到它。命名空间public
中的类为MyAppName.App_Code
,MyPage.cs
中的MyAppName
位于命名空间MyAppName.App_Code
中。
我似乎无法在MyPage.cs
的代码中包含myEntities
命名空间,Visual Studio告诉我它是多余的,后面的代码仍然看不到或接受类{{ 1}}。
修改 更清晰: 在App_Code文件夹中的MyEntities.Context.cs
namespace MyApp.App_Code
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class MyEntities : DbContext
{
public MyEntities()
: base("name=MyEntities")
{
}
}}
MyPage.cs背后的代码
namespace MyApp
{
public partial class _default : System.Web.UI.Page
{
public IQueryable ListView_GetData()
{
//can't use the MyEntities class here, tried to add the
//MyApp.App_code namespace above, still did't work
var data = MyEntities();
//my LINQ operations
return null;
}
}}
答案 0 :(得分:1)
App_Code文件夹中的代码会自动引用到您的 应用
将DbContext
课程放在App_Code
中意味着它将在您的应用程序中的任何位置自动提供,而无需明确参考。所以你可以写:
var exampleTableEntities = MyEntities.ExampleTableEntities;
如果您想要明确的引用,我建议您将DbContext
文件夹外的App_Code
移到名为Data
,Domain
或类似名称的文件夹中。然后从您的代码文件中引用。