代码之家  ›  专栏  ›  技术社区  ›  Markus

Linq to SQL:Windows服务中的InvalidOperationException

  •  0
  • Markus  · 技术社区  · 15 年前

    我实现了一个小的Windows服务,它每9分钟运行一次,并将通过WebService来的数据写入数据库。

    执行我使用Linq to SQL的数据库工作

    using (var db = new DataClasses1DataContext())
                {
                    var currentWeather = this.GetWeatherData();
    
                    //////TODO Add the data correct
    
                    var newEntry = new WeatherData()
                    {
                        test = currentWeather.dateGenerated.ToShortTimeString()
                    };
    
                    //var test = db.WeatherDatas.First();
    
                    db.WeatherDatas.InsertOnSubmit(newEntry); // this throws Invalid Operation Exception
                    db.SubmitChanges();
                }
    

    为什么会抛出这个异常?控制台程序中的相同代码块运行良好

    alt text http://img687.imageshack.us/img687/7588/unbenanntxb.png

    1 回复  |  直到 15 年前
        1
  •  1
  •   Mark Seemann    15 年前

    在app.config中是否正确设置了连接字符串?

    IIRC,L2S数据上下文上的默认构造函数从配置文件中读取连接字符串。如果连接字符串指向错误的数据库(或不存在的数据库),您很可能会收到异常。

    这也可以解释为什么这段代码在不同的上下文中执行时会起作用。