0

我正在使用 c# 和 ADO .NET 实体数据模型开发应用程序。我有一个表格文章(idArticle,nameArticle,statusArticles)。我想检索 statusArticle=false 的第一篇文章,并将她的值更新为 true。有人可以帮助我使用此代码:

   private void button_Click(object sender, EventArgs e)
        {
            using (DbEntities db = new DbEntities())
            {
               Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
                if (firstArticle != null)
                {
                    firstArticle.statusArticle = true;
                    MessageBox.Show("Article validated", "OK");
                    this.Refresh();
                }
            }
        }
4

2 回答 2

1

.FirstOrDefault()

public static TSource FirstOrDefault<TSource>(
    this IEnumerable<TSource> source //db.Articles
)

将返回:

如果源为空,则默认(TSource);否则,源中的第一个元素。

default(TSource) 返回null引用类型元素或(通常)返回0值类型元素。

您修改后的代码:

 private void button_Click(object sender, EventArgs e)
        {
            using (DbEntities db = new DbEntities())
            {
               Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
                if (firstArticle != null)
                {
                    firstArticle.statusArticle = true;
                    MessageBox.Show("Article validated", "OK");
                    db.SaveChanges(); //change (can go before/after validation message)
                    this.Refresh();

                }
            }
        }
于 2013-05-12T13:36:46.977 回答
1

这可以按如下方式完成

    private void button_Click(object sender, EventArgs e)
    {
        using (DbEntities db = new DbEntities())
        {
           Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
           // firstArticle is not null anyways as you are calling FirstOrDefault()
         **EDIT** // In case nothing has status = false, you will get a new Articles object, so instead of the below null check, you have to check for other property like id or name that will be unique.
            if (firstArticle != null)
            {
                firstArticle.statusArticle = true;
                db.SaveChanges();
                MessageBox.Show("Article validated", "OK");
                this.Refresh();
            }
        }
    }
于 2013-05-12T13:37:20.283 回答