0

体のラインが1本だけになるように引き締める方法はありますか?

private int _ProjectGuidToId (Guid guid)
{
    ProjectEntity res = _dbt.ProjectEntity
                            .Where(r => r.ProjectGUID == guid.ToString())
                            .First();
    return res.Id;
}

つまり、1 行のコードで LINQ を使用して、データベースの 1 行から 1 つの値 (Id) を返すにはどうすればよいでしょうか?

ありがとう。

4

5 に答える 5

2

where句は、Firstの述語句を使用して削除できます。

return _dbt.ProjectEntity.First( r => r.ProjectGUID == guid.ToString() ).Id;
于 2012-10-12T22:18:44.313 に答える
2

このようなものはどうですか?

private int _ProjectGuidToId (Guid guid)
{
    return _dbt.ProjectEntity.First(r => r.ProjectGUID == guid.ToString()).Id;
}
于 2012-10-12T22:15:25.063 に答える
1

最初の行の最後に.Idを追加して、1行を返すだけです。

しかし、私はこれを思いとどまらせます。私の意見では、1行の読み取り不可能な行は、2行の読み取り可能行よりも悪いコードです。

于 2012-10-12T22:19:16.573 に答える
0

The first will return the type of the object and no casting is needed (More Details.

Just do this line:

 return _dbt.ProjectEntity.Where(r => r.ProjectGUID == guid.ToString()).First().Id;

NOTE: If the query is not guaranteed to return one object an InvalidOperationException could be thrown!

于 2012-10-12T22:16:54.563 に答える
-1

リストに1つのアイテムを含める必要がある場合は、これを使用します。リストに複数のアイテムが含まれている場合、エラーが発生する可能性があります。

return _dbt.ProjectEntity.Single(r => r.ProjectGUID == guid.ToString()).Id;

リストの長さに関係なく、これを使用します。

return _dbt.ProjectEntity.First(r => r.ProjectGUID == guid.ToString()).Id;
于 2012-10-12T22:19:58.757 に答える