如何从对象列表中获取单个对象

问题描述:

请您告诉我如何使用此方法获取单个数据对象。 由于返回类型,对我来说很困难。我试图从我的MongoDB集合中获取单个数据,然后使用不同形式的数据来显示谁处于活动状态。我的错误总是在返回类型的定义。如何从对象列表中获取单个对象

这是我的代码:

public var PrijavljenKorisnik(ModelPrijavaKorisnika prvKor) 
    { 
     MongoCollection<ModelKorisici> kljenti = GetTasksCollection(); 
     List<ModelKorisici> DohvaceniKorisnik = new List<ModelKorisici>(); 
     var upit = from lambda in kljenti.AsQueryable<ModelKorisici >() 
        where lambda.kor_ime == prvKor.PrijavaKor && lambda.uloga == "korisnik" 
        select lambda; 


     foreach (var dohvaceni in upit) 
     { 
      DohvaceniKorisnik.Add(dohvaceni); 
      if (DohvaceniKorisnik.Count() >= 1 && dohvaceni.uloga == "korisnik") 
      { 
       MessageBox.Show("Ovaj korinik je prijavljen kao korisnik"); 
       frmKorisnik fmk = new frmKorisnik(); 
       fmk.Show(); 
       frmPrijavaForma frmPriv = new frmPrijavaForma(); 
       frmPriv.Close(); 
       return dohvaceni; 
      } 
      else 
      { 
       DialogResult d = MessageBox.Show("Potrebno se je predhodno registrirati u aplikaciju KnjigoLjubac"); 
       if (d == DialogResult.Yes) 
       { 
        frmRegistracijaForma frmReg = new frmRegistracijaForma(); 
        frmReg.Show(); 
        return null; 
       } 
      } 
     } 
+0

'公共var'应该可能是'public ModelKorisici' ...? –

+0

为什么不能将返回类型更改为可空类型的“dohvaceni”? – ashy

+0

我试着用ModelKorisici,但方法 –

我并不完全相信你的意图是什么,但我会在它采取刺伤。你认为你正在寻找一个单一的价值,所以我想这可能会为你工作:

var dohvaceni = (from lambda in kljenti.AsQueryable<ModelKorisici >() 
       where lambda.kor_ime == prvKor.PrijavaKor && lambda.uloga == "korisnik" 
       select lambda) 
      .FirstOrDefault(); 

if (dohvaceni != null) 
{ 
    MessageBox.Show("Ovaj korinik je prijavljen kao korisnik"); 
    // the rest of the code for a match... 
} 
else 
{ 
    DialogResult d = MessageBox.Show("Potrebno se je predhodno registrirati u aplikaciju KnjigoLjubac"); 
    // the rest of the code for no matches... 
} 

我希望这可以帮助。

+0

我的意图是从mongodb获取数据并返回它,以便我可以在某些情况下使用数据另一种形式,这是一个登录表单的代码,我需要获得注册用户的用户名,所以,我试图返回一个完整的对象,然后在另一个表单上使用它。 –

+0

我通过Google翻译运行了一些变量名我发现你正在使用列名uloga(Role)来确定它们是否在“korisnik”(用户)角色中,以及是否与kor_ime(用户名)匹配。 ,我会建议在你的表单上创建一个构造函数,该构造函数将获取用户类的实例,然后使用该构造函数创建窗体(例如:MyForm m yForm = new MyForm(userInstance))。理想情况下,您会考虑实现自定义主体和IIdentity,以便使用内置的.NET安全性。 –

+0

frmRegistracijaForma formReg = new frmRegistracijaForma(); ModelPrijavaKorisnika prvKor = new ModelPrijavaKorisnika(); KorisniciBazaPodataka bpk = new KorisniciBazaPodataka(); label1.Text = bpk.PrijavljenKorisnik(prvKor).ToString();我试过这个......但现在我有一个空引用异常 –