2014-03-26 2 views
0

Я хочу объединить, внешние присоединить столбцы «Count» из списка View_AssessmentCount к View_Assessment. Конечно, граф получит ошибку, потому что это int, и я написал String.Empty. Именно в этой части я указываю, где внешнее соединение нуль столбец «Count». Но опять же я не знаю правильных условий для Google. Пожалуйста, помогите мне рассказать об этом.Слияние Null int Столбец после присоединения

public class AssessmentWithCount 
{ 
    public int Count { get; set; } 
    public String AssessmentName { get; set; } 
    public String AssessmentInitials { get; set; } 
    public Int16 id { get; set; } 
} 

public IEnumerable<AssessmentWithCount> GetAssessmentWithCount() 
{ 
    using (var context = new SQL_TA_SCOREBOARDEntities1()) 
    { 
     var query = from a in context.View_Assessment 
        join b in context.View_AssessmentCount on a.AssessmentName equals b.AssessmentName into ab 
        from subA in ab.DefaultIfEmpty() 
        select new AssessmentWithCount 
        { 
         AssessmentName = a.AssessmentName, 
         Count = (subA == null ? String.Empty : subA.Count.ToString()) 
        }; 
     return query; 
    } 
} 

Обновленный пост

Теперь моя ошибка «Экземпляр ObjectContext были захоронены и больше не могут быть использованы для операций, требующих соединения.» когда я DataBind этого класса. :(

+0

Не знаете, почему вы пытаетесь присвоить 'AssessmentName'' Count'. Какое значение в 'View_AssessmentCount' фактически имеет значение« count », которое вы ищете? –

+0

Упс. Извините изменен. –

ответ

1

Не конвертировать поле базы данных в строку - просто использовать его как есть:

Count = (subA == null ? 0 : (subA.Count ?? 0)) 

Что касается сообщений об ошибке ... using оператора располагает своим экземпляром SQL_TA_SCOREBOARDEntities1, так что вам нужно чтобы получить данные в настоящее время, прежде чем покинуть метод:

return query.ToList(); 
+0

Да, я лучше понимаю это лучше! Но теперь он говорит, что не может неявно преобразовать «int?». на «int». :( –

+0

Итак, столбец 'Count' имеет значение NULL в вашей базе данных? Отредактировал мой ответ. Посмотрим, сможет ли он преобразовать его в действительный оператор SQL ... –

+0

Oh allow nulls yes. Также относительно этой проблемы не ясно для меня обработка ошибок, когда поля являются нулевыми. Что делать дальше? :( –

0

Вот попробуйте вместо этого:

Count = SubA.Count ?? 0 

Просто были некоторые проблемы, подобные этим, и получили помощь. :) Извините, я не могу комментировать, поскольку у меня меньше 50 повторений.

+0

Спасибо Джейсону, но отредактированный пост работает сейчас. –

Смежные вопросы