ローカル マシンにデータベースがあります。LINQ to SQL を使用してこのデータベースにレコードを挿入する C# アプリケーションがあります。SSMS ( SQL Server Management Studio) を使用してデータベース (およびクエリ ウィンドウで選択したレコード) を開きました。ここで、C# アプリケーションを実行しようとすると、次のエラーが発生します。
“Cannot open user default database. Login failed. Login failed for user DFGV\G16570'.”
システムを再起動すると、このエラーはなくなります。
注: Integrated Security=True を使用しています
注: SQL Server は「LocalSystem」アカウントで実行されています
LINQ の接続文字列:
Data Source=.; AttachDbFilename=C:\DevTEST\Databases\LibraryReservationSystem.mdf;
Integrated Security=True; Connect Timeout=30;User Instance=True
注: 「ユーザー インスタンス」キーワード
以下は私のLINQクエリです:
public virtual void InsertOnSubmit(T entity)
{
GetTable().InsertOnSubmit(entity);
Context.SubmitChanges();
}
SSMS 経由でデータベースに接続しているときに LINQ を機能させるにはどうすればよいですか?
編集
応答に基づいて、以下に示すようにコードを変更しました。
string connectionstring = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";
using (var context = new RepositoryLayer.LibraryManagementClassesDataContext(connectionstring))
{
RepositoryLayer.Repository<RepositoryLayer.Account> selectedRepository = new RepositoryLayer.Repository<RepositoryLayer.Account>();
selectedRepository.Context = context;
AccountBusiness accountBl = new AccountBusiness(selectedRepository);
//List<RepositoryLayer.Account> accountList = accountBl.GetAllAccounts();
accountBl.InsertAccounts();
}
注: 「User Instance」キーワードが TRUE に設定されていないことを確認してください。