有什么方法可以在另一列的基础上从导航属性中选择一列?

时间:2019-04-16 11:01:25

标签: c# entity-framework c#-4.0 entity-framework-6 ef-code-first

我是lambda表达式中的Code First的新手。我发现很难在其中编写查询。

我有一个用户类,其中包含一个名为“ Initials”的导航属性。

我想为Code表中的外部IntialID选择一个Users列,但操作不正确。

用户类别:

public class User
{
    public int UserID { get; set; }

    public short? InitialsID { get; set; }
    public virtual Initials Initials { get; set; }
}

用户DAL:

        public User ValidateUser(string Username, string Password)
        {
            return uow.UserRepository.GetQueryable().Where(x => x.UserName == Username && x.Password == Password).FirstOrDefault();
        }

UsersRepo:

        public AbstractRepository<User> UserRepository
        {
            get
            {
                if (this.UserRepo == null)
                {
                    this.UserRepo = new AbstractRepository<User>(context);
                }
                return UserRepo;
            }
        }

初始课程:

    public class Initials
    {
        public short? InitialsID { get; set; }
        public string Code { get; set; }
    }

我已经尝试过了:

  public ActionResult Login(User model)
    {
        VAILCertificates.DAL.UserDAL userDAL = new DAL.UserDAL();
        VAILCertificates.DAL.Entities.User user = new User();
        user = userDAL.ValidateUser(model.UserName, model.Password);
        var query= user.Initials.InitialsID.Value.where() 
        if (user != null)
        {
            Session["User"] = user;
            return RedirectToAction("Index", "Certificates");
        }
        else
        {
            ModelState.AddModelError("", "Invalid Username or Password.");
        }
        return View(model);
    }

0 个答案:

没有答案