可以';t从SQL数据源中选择"t";无法转换类型';NorthwindDataCont

本文关键字:quot 类型 NorthwindDataCont 转换 数据源 SQL 可以 选择 | 更新日期: 2023-09-27 18:01:00

我正试图从SQL server数据源中检索一些数据。这可能真的很琐碎,但我看不出我错过了什么。

到目前为止,我的代码是

    public List<string> GetCountries()
    {
        using (var context = new NorthwindDataContext())
        {
            return (from c in context.Customers
                select c.Country).Distinct().ToList();
        }
    }

但视觉工作室正在抱怨

"无法将类型"NorthwindDataContext"转换为"System.Idisposable">

关于

new NorthwindDataContext()

它似乎也无法解决

select c.Country

我使用的是.net 4.5

有人能提出什么建议吗?

可以';t从SQL数据源中选择"t";无法转换类型';NorthwindDataCont

这可能是因为NorthwindDataContext()没有实现IDisposable接口,所以不能在using()语句中使用它。

试试这个:

public List<string> GetCountries()
{
    var context = new NorthwindDataContext();
    return (from c in context.Customers
           select c.Country).Distinct().ToList();
}

using语句绑定到IDisposable接口,如MSDN文档中所述:

提供方便的语法,确保正确使用IDisposable对象。

这意味着,在返回对象列表后,应用程序将尝试处理已使用的对象,并将其标记为垃圾回收。您的using将执行的操作对应于以下代码:

try
{
    string s = myObject.Stuff();
}
finally
{
    ((IDisposable)myObject).Dispose();
}

很可能,您的NorthwindDataContext()对象没有实现IDisposable接口,然后出现强制转换错误。不能使用using语句。

相关文章: