根据FAQ(1),我可以通过多种方式向现有连接添加其他数据库。我已经尝试过所有这些,但没有一个适用于SQL Azure。
事实上,SQL Azure作为提供程序,甚至不包括“包含其他数据库”选项。
有人可以告诉我LinqPad连接两个数据库的解决方法吗?我正在尝试创建一个迁移linqpad脚本,以将数据从一个数据库同步到另一个数据库。
答案 0 :(得分:2)
此操作失败,因为SQL Azure不允许您创建链接服务器。看到 Can linked server providers be installed on a SQL Azure Database instance?
如果您只是想将数据从一个数据库复制到另一个数据库,并且模式相同,则解决方法是使用相同的TypedDataContext类创建单独的连接:
void Main()
{
CopyFrom<Customer>("<source connection string>");
}
void CopyFrom<TTable> (string sourceCxString) where TTable : class
{
// Create another typed data context for the source. Note that it must have compatible schema:
using (var sourceContext = new TypedDataContext (sourceCxString) { ObjectTrackingEnabled = false })
{
// Delete the rows currently in our table:
ExecuteCommand ("delete " + Mapping.GetTable (typeof (TTable)).TableName);
// Insert the rows from the source table into the target table and submit changes:
GetTable<TTable>().InsertAllOnSubmit (sourceContext.GetTable<TTable>());
SubmitChanges();
}
}
简单选择示例:
void Main()
{
SimpleSelect("<your conn string>");
}
void SimpleSelect (string sourceCxString)
{
// Create another typed data context for the source. Note that it must have compatible schema:
using (var sourceContext = new TypedDataContext (sourceCxString) { ObjectTrackingEnabled = false })
{
sourceContext.Assignee.OrderByDescending(a => a.CreateTimeStamp).Take(10).Dump();
Assignee.OrderByDescending(a => a.CreateTimeStamp).Take(10).Dump();
}
}