加入后合并Null int Column

时间:2014-03-26 02:12:22

标签: c# sql linq-to-sql

我想合并,外部加入专栏" Count"从View_AssessmentCount列表到View_Assessment。当然Count会出错,因为它是 int 而且我写了String.Empty。我在这个部分指定了外部加入 null 列的位置" Count"。但是,我再也不知道谷歌的正确条款。请帮我解释一下。

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;
    }
}

更新了帖子

现在我的错误是&#34; ObjectContext实例已被丢弃,不能再用于需要连接的操作。&#34;当我DataBind这个类。 :(

2 个答案:

答案 0 :(得分:1)

不要将数据库字段转换为字符串 - 只需按原样使用它:

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

关于错误消息... using语句处理您的SQL_TA_SCOREBOARDEntities1实例,因此您需要在离开方法之前立即获取数据:

return query.ToList();

答案 1 :(得分:0)

在这里试试这个:

Count = SubA.Count ?? 0

刚刚遇到过这样的问题并得到了帮助。 :) 对不起我无法发表评论,因为我的代表不到50人。