LINQ2SQL - FirstItem - PullRequest
       2

LINQ2SQL - FirstItem

0 голосов
/ 02 декабря 2011

Как вы получаете только первый предмет?Кажется, что я должен сделать следующее, иначе я получу ошибку, как если бы это было несколько элементов, и я не могу получить только первый элемент этого.

Моя цель - удалить цикл foreach из приведенного ниже кода.

                        MetaDataPropertyBag propertyBag = new MetaDataPropertyBag();

                        var dbResultsOfType = db.spi_GetTypesByCaseType(caseType);

                        foreach (var item in dbResultsOfType)
                        {
                            if (item.ASSOC_TYPE_ID == primaryChildTypeID)
                            {
                                propertyBag.CaseTypeDesc = item.DESCRIPTION;
                                propertyBag.Required = item.IS_REQUIRED == 'Y' ? true : false;
                                propertyBag.Parent = item.PARENT_ID.Value;
                                propertyBag.Child = item.CHILD_ID.Value;
                                propertyBag.AssocTypeID = item.ASSOC_TYPE_ID;
                                propertyBag.CaseTypeID = item.CASE_TYPE_ID;
                                break; // Only one entry is requested
                            }
                        }

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Вот один из способов сделать это:

var first = dbResultsOfType.FirstOrDefault(item => item.ASSOC_TYPE_ID == primaryChildTypeID);
if (first != null) {
    propertyBag.CaseTypeDesc = first.DESCRIPTION;
    propertyBag.Required = first.IS_REQUIRED == 'Y' ? true : false;
    propertyBag.Parent = first.PARENT_ID.Value;
    propertyBag.Child = first.CHILD_ID.Value;
    propertyBag.AssocTypeID = first.ASSOC_TYPE_ID;
    propertyBag.CaseTypeID = first.CASE_TYPE_ID;
}
1 голос
/ 02 декабря 2011

FirstorDefault должен сделать это: MSDN статья о первом или по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...