ASP.NET MVC4 设置数据库上下文和模型
本文关键字:上下文 模型 数据库 设置 NET MVC4 ASP | 更新日期: 2023-09-27 18:37:10
我正在使用一个 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)。
我的整个项目可在此处访问:下载
感谢您的时间和帮助,我在这里很迷茫,浏览教程但仍然错过了重点。
我想应该是
var user = new d.Users.FirstOrDefault( u => u.email == email);
可以试试这个
var user = d.Users.ToList().FirstOrDefault(u => u.Email == email);
.
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;
}
}