Linq to sql 在C中使用LINQ to SQL修改数据库会使数据库在SQL Management Studio中无法访问

Linq to sql 在C中使用LINQ to SQL修改数据库会使数据库在SQL Management Studio中无法访问,linq-to-sql,ssms,Linq To Sql,Ssms,使用SQLServer2008Express,我在SQLServerManagementStudio中附加了Northwind数据库,一切正常 然后,我断开服务器连接,关闭SQL server Management Studio,并使用以下LINQ到SQL C代码修改Northwind数据库: using System.Linq; using System.Data.Linq; using System.Data.Linq.Mapping; namespace LinqConsoleApp {

使用SQLServer2008Express,我在SQLServerManagementStudio中附加了Northwind数据库,一切正常

然后,我断开服务器连接,关闭SQL server Management Studio,并使用以下LINQ到SQL C代码修改Northwind数据库:

using System.Linq;
using System.Data.Linq;
using System.Data.Linq.Mapping;

namespace LinqConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Northwnd db = new Northwnd(@"C:\Program Files (x86)\Microsoft SQL
                Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\northwnd.mdf");

            Customer testCust = new Customer();
            testCust.CompanyName = "Dummy"; testCust.CustomerID = "DE1";
            db.Customers.InsertOnSubmit(testCust);

            db.SubmitChanges();
            db.Dispose();            

        }
    }
}
它执行时没有错误。当我重新打开Management Studio并选择Northwind数据库时,会收到“数据库不可访问”错误消息,并且无法查看Northwind的任何表

知道为什么运行此LINQ代码会阻止ManagementStudio随后访问数据库吗

谢谢

更新:

Northwnd类是从sqlmetal.exe自动生成的,因此在调用Northwnd构造函数时,它会执行以下操作以连接到MDF文件:

public Northwnd(string connection) : (connection, mappingSource)
{
    OnCreated();
}
如果OnCreated不执行任何操作,则基类为System.Data.Linq.DataContext,“mappingSource”为:

private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

你能告诉我们你在北方班到底做什么吗

至少我觉得这很奇怪——如果不是完全危险的话,您似乎将Northwind连接到SQL Server Express实例,以便您可以在SQL Server Management Studio中访问它,同时,您的Northwnd类似乎正在访问直接连接到SQL Server Express的MDF文件

如果可以,我会尝试使用普通连接字符串:

server=.\SQLExpress;Database=Northwind;Integrated Security=SSPI

当数据库连接到SQL Server Express实例时……

谢谢marc\s。我使用Microsoft的sqlmetal.exe生成器直接从数据库生成Northwnd类。这是数千行,但我会更新的问题,它做什么连接的要点。特别感谢你指出了危险的行为。我认为关闭SQLServerManagementStudio会断开Northwind与我的SQLServerExpress实例的连接,当然不会断开。如果我在直接用我的类访问MDF文件之前确保分离Northwind,那么它的表现似乎很好。