【发布时间】:2021-09-06 07:29:21
【问题描述】:
我正在努力在我的项目中创建一个登录系统,但我遇到了一个异常错误。
错误看起来像这样:
这是我的Person 模型:
namespace Entities.Concrete
{
public class Person:IEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public bool IsActive { get; set; }
public ICollection<User> Users { get; set; }
}
}
这是我的User 模型:
namespace Entities.Concrete
{
public class User:IEntity
{
[ForeignKey("Person")]
public int PersonId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public bool IsActive { get; set; }
public DateTime LastLoginDate { get; set; }
public int PersonForeignKey { get; set; }
public Person Person { get; set; }
}
}
我的上下文如下所示:
namespace DataAccess.Concrete.EntityFramework
{
public class SchoolDBContext : DbContext
{
public SchoolDBContext():base("SchoolDB")
{
}
public DbSet<Student> Students{ get; set; }
public DbSet<Person> Persons { get; set; }
public DbSet<User> Users { get; set; }
}
}
最后,我的Login 方法如下所示:
public bool Login(string username, string password)
{
using (TContext context = new TContext())
{
var user = (from p in context.Persons
join u in context.Users
on p.Id equals u.PersonId
where p.IsActive == false &&
u.UserName == username &&
u.Password == password &&
u.IsActive == true
select p).FirstOrDefault();
if (user != null)
return true;
return false;
}
}
我在 user 变量中遇到错误。
我不知道如何先用实体框架代码分配一个键。你能帮帮我吗?
【问题讨论】:
-
您应该在用户类上添加一个 int Id。我认为有一个属性 [Key] 可以使用。
-
你也可以发布 IEntity 吗?
-
@Serge Ientity 接口为空
-
@Ahmetfurkandur 你是什么意思 IEntity 是空的?那你为什么用它呢?
-
@serge 我在存储库基础设计模式中使用并在存储库中调用 IEntity
标签: c# sql-server entity-framework linq