Linq缓存问题



我是Linq的新手,我认为我遇到了缓存问题。我在谷歌上搜索过的所有"清除缓存"技巧都没有奏效。基本上,如果我在VisualStudio中单击"开始",记录就会被添加,并在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() + "nn");
            }
        }

}

检查连接字符串和数据库位置。我希望代码的第一部分连接到visual studio解决方案中的数据库,代码的第二部分连接到bin/debug文件夹中的数据库。这可以解释为什么添加的记录在重新编译后才可见,因为此时visual studio解决方案中的数据库被复制到bin/debug文件夹中。

相关内容

  • 没有找到相关文章

最新更新