Shd*_*dNx 6 c# sql-server linq-to-sql
我有一个简单的问题,即读取Excel文件(使用互操作)并使用从中提取的一些数据填充MSSQL数据库文件.到目前为止这很好.我有一个Shops表,其中包含以下字段:
我阅读了excel文件,然后创建了一个新的Shops对象并设置了Name,Settlement,County和Address属性,并使用新的Shops对象调用Shops.InsertOnSubmit().
在此之后我必须重置数据库(至少是表),我发现最简单的方法是调用DeleteDatabase()方法,然后再次调用CreateDatabase().问题是,在第一次重置后,当我再次尝试填充表时,我得到异常:数据库生成了一个已经在使用的密钥.
另外,从那时起,我无法使用该数据库文件,因为DatabaseExists()返回FALSE,但是当我调用CreateDatabase()方法时,它抛出一个异常,数据库已经存在(尽管数据文件没有不存在).
我究竟做错了什么?非常感谢你提前!
听起来您正在重新使用超出明智的数据上下文。尝试在删除数据库后处理并重新创建数据上下文。
我怀疑问题在于身份管理器仍在跟踪对象(销毁和重新创建数据库是一种极端情况,我认为我们可以原谅它没有在这里重置自己)。