从关系数据库中检索信息

时间:2013-05-12 12:14:10

标签: c# sql ado.net

我正在使用c#和ADO .NET实体数据模型开发应用程序,我有一个表文章(idArticle,nameArticle,statusArticle,idSubject),与另一个表Subjects(idSubject,nameSubject)相关。 Subjects.idSubject = Articles.idSubject。 Aftrer检索第一篇文章,其中statusArticle = 0:

Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
    if (firstArticle != null)
    {
        textBox1.Text = firstArticle.nameArticle;
    } 

我想在另一个textBox中显示本文主题的名称(nameSubject),如何选择本文的nameSubject并在textBox中显示?

2 个答案:

答案 0 :(得分:1)

不确定我是否正确地帮助你,但是你累了:

Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
if (firstArticle != null)
{
    textBox1.Text = firstArticle.nameArticle;
    textBox2.Text = firstArticle.Subject.nameSubject;
} 

主题必须是您实体上导航属性的名称..如果您在visual studio中使用intellisense查看firstArticle上的属性,则应该有一个属性可以返回将链接到的Subject该项目。

您是使用codefirst,DB first还是使用模型第一种方法来实现EF?其中每个都有方法来检查和配置导航属性将被调用的内容以及它是否存在 - 我假设数据库是第一个,我记得标准命名。

答案 1 :(得分:0)

如果Articles类没有关联/导航属性,则可以尝试此操作:

    Articles(idArticle, nameArticle, statusArticle, idSubject)
    Subjects(idSubject,nameSubject)

    Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
    if (firstArticle != null)
    {
        textBox1.Text = firstArticle.nameArticle;
        Subject subject = db.Subjects.FirstOrDefault(s => s.idSubject == firstArticle.idSubject);
        textBox2.Text = (subject != null) ? subject.nameSubject : string.Empty;
    }