我正在尝试使用Essential Linq,并且只是连接到提供的.mdf
文件时遇到问题。
我已将文件保存在C:\DATA\NORTHWND.MDF
。我正在使用Visual Studio 2013
代码如下所示:
using System;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Linq;
using System.IO;
namespace LinqToSqlWithoutDesigner
{
[Table(Name="Customers")]
class Customer
{
[Column]
public string CustomerID;
[Column]
public string City;
}
class Program
{
static void Main(string[] args)
{
DataContext db = new DataContext(@"C:\DATA\NORTHWND.MDF");
var query = from c in db.GetTable<Customer>()
where c.City == "London"
select new { CustId = c.CustomerID, City = c.City };
foreach(var cust in query)
{
Console.WriteLine(cust);
}
}
}
}
我也尝试过使用:
string connectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=c:\data\northwind.mdf;
Integrated Security=True;
Connect Timeout=30;
User Instance=True";
DataContext db = new DataContext(connectionString);
但我总是得到错误:
未处理的异常:System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
答案 0 :(得分:3)
您的计算机上似乎没有SQL Server Express,或者未激活所请求的网络接口协议。
对于.mdf
文件,您需要启动并运行SQL Server
答案 1 :(得分:0)
您的连接字符串中不存在目录名称
添加到connectionString:
catalog=yourDbName
注意:您无法直接连接到MDF文件。
如果数据库服务器中不存在数据库,则需要使用.mdf文件和.ldf文件。
然后使用您的连接字符串并添加我提到的目录名称
答案 2 :(得分:0)
好的,这是允许我连接到MDF文件的字符串
DataContext db = new DataContext(@"Data Source=(localdb)\v11.0;
Integrated Security=true;
AttachDbFileName=C:\DATA\NORTHWND.MDF");
有关LocalDB的更多信息,请访问: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx