0
我对Linq很新,我有我认为是缓存问题。所有“清除缓存”技巧,我GOOGLE了没有奏效。基本上,如果我在Visual Studio中单击开始记录被添加并在Linq结果中回显。但是,如果我运行可执行文件,它会添加新记录,但Linq输出永远不会更新。即使在程序退出并重新运行之后,直到您重新编译代码之前,先前添加的记录才会显示。这是我的代码。Linq缓存问题?
static void Main()
{
using (SqlConnection conn = new SqlConnection())
{
Console.WriteLine("Starting insert");
conn.ConnectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=\"C:\\Users\\Test\\Database1.mdf\";Integrated Security=True";
conn.Open();
SqlCommand command = new SqlCommand("INSERT INTO Contacts (forname, initial, surname, dob) VALUES (@forname, @initial, @surname, @dob)", conn);
command.Parameters.AddWithValue("@forname", "Sarah");
command.Parameters.AddWithValue("@initial", "J");
command.Parameters.AddWithValue("@surname", "Jones");
command.Parameters.AddWithValue("@dob", "04/24/1972 12:00:00");
try
{
command.ExecuteNonQuery();
} catch (Exception ex)
{
Console.Write(ex.Message);
}
conn.Close();
}
using (DataClasses1DataContext db = new DataClasses1DataContext()) {
db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, db.Contacts);
var contacts = from c in db.Contacts select c;
foreach (Contact co in contacts)
{
Console.Write("ID: " + co.Id.ToString() + "\n");
Console.Write("First name: " + co.forname + "\n");
Console.Write("Surname: " + co.surname + "\n");
Console.Write("Date of Birth" + co.dob.ToString() + "\n\n");
}
}
}
ef-context是否连接到相同的数据库?我期待你的代码的第一部分连接到你的visual-studio-solution中的数据库,并且你的代码的第二部分要连接到bin/debug文件夹中的数据库。 – Maarten
是的,我从服务器资源管理器中获取连接字符串。 –
你可以显示来自app.config的连接字符串吗? – Maarten