我正在使用ASP.NET MVC4项目(学校项目,所以我正在学习框架),试图以“代码优先”的观点获得工作实体框架6.0。我创建了模型(/Models/
),DbContext
如下所示:
using System;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
namespace Autokereskedes.Models
{
public class AutoDb : DbContext
{
public DbSet<Car> Cars { get; set; }
public DbSet<Reservation> Reservations { get; set; }
public DbSet<Depo> Depos { get; set; }
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
base.OnModelCreating(modelBuilder);
}
}
}
但是,当我想在控制器中使用它时,出现错误
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Autokereskedes.Models;
namespace Autokereskedes.Controllers
{
public class AccountController : Controller
{
......
private bool IsUserDataValid(string email, string password)
{
bool r = false;
var crypto = new SimpleCrypto.PBKDF2();
using (var d = new AutoDb())
{
var user = new d.SystemUsers.FirstOrDefault( u => u.email == email);
if (user != null && user.Password == crypto.Compute(password))
{
r = true;
}
}
return r;
}
错误是:
Error 1 The type or namespace name 'd' could not be found (are you missing a using directive or an assembly reference?) C:\_temp\stackoverflow\Autokereskedes\Controllers\AccountController.cs 64 32 Autokereskedes
另外,我无法真正使用模型,我认为我在对表关系进行编码时犯了错误(我的表大多具有一对多关联),但是当我使用模型时,仍然遇到了外键错误(HomeController)。
我的整个项目可在此处下载:
谢谢您的时间和帮助,我在这里迷失了方向,浏览教程,但仍然没有抓住重点。
.NET认为您正在尝试实例化名称空间d.SystemUsers中名为FirstOrDefault的类,而您只是尝试引用刚刚创建的d对象的SystemUsers属性。
因此,请尝试删除“新”:
using (var d = new AutoDb())
{
var user = d.SystemUsers.FirstOrDefault( u => u.email == email);
if (user != null && user.Password == crypto.Compute(password))
{
r = true;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句