我有一个使用EF6.1与Sql Server数据库通信的VS2013项目。到目前为止,我一直在使用Effort内存数据库运行一些自动化测试。
我正在尝试使用Sql Server的LocalDb,而我遇到了一些我不明白的问题。
我明白了:
System.ArgumentException: "Keyword not supported: 'data source'".
我的连接字符串很简单:
<add name="MyDbContext"
connectionString="Data Source=(localdb)\v11.0;Initial Catalog=localDb;Integrated Security=True"
providerName="System.Data.EntityClient"
/>
我的代码同样简单:
[TestClass]
public class TestCustomers
{
private MyDbContext myDbContext = null;
private IEnumerable<customer> defaultCustomers = new []
{
new customer{customerid = "Customer 1"},
new customer{customerid = "Customer 2"},
new customer{customerid = "Customer 3"},
};
[TestInitialize]
public void init()
{
this.myDbContext = new MyDbContext();
foreach (var customer in this.defaultCustomers)
this.myDbContext.customers.Add(customer);
this.myDbContext.SaveChanges();
}
[TestMethod]
public void testAllCustomers()
{
var customers = this.myDbContext.customers;
var customerList = customers.ToList();
Assert.IsTrue(customerList.Count == 3);
}
}
关于可能出错的任何想法?
答案 0 :(得分:1)
您已将提供商指定为System.Data.EntityClient
而非System.Data.SqlClient
。这两种都需要不同的连接字符串格式。
确定使用内容的一个很好的来源是http://www.connectionstrings.com