c#中azure的组合缓存提供程序

时间:2013-05-13 07:52:09

标签: c# azure azure-sql-database azure-caching

对于我在我的天蓝云中工作的网站,我需要实现“混合”缓存。

意思是,我的网站显示来自某个数据库的记录表,并提供添加新记录或更新现有记录的选项。对于读取,我需要实现进程内缓存,对于写入(添加,更新),我需要进行进程外缓存。

我是C#和azure的新人。我很乐意从一开始就得到一些帮助......

目前,我使用简单的sql命令来显示,添加或更新:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
                GridView1.DataBind();
}

protected void Button1_Click(object sender, EventArgs e)
        {
            string InsertCommand = "INSERT INTO [Students] ([Student_Name], [GPA]) VALUES (@Student_Name, @GPA)";
            string connString = SqlAzureDataSource.ConnectionString;
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand comm = new SqlCommand())
                {
                    comm.Connection = conn;
                    comm.CommandText = InsertCommand;
                    comm.Parameters.AddWithValue("@Student_Name", TextBox1.Text);
                    comm.Parameters.AddWithValue("@GPA", TextBox2.Text);

                    try
                    {
                        conn.Open();
                        comm.ExecuteNonQuery();
                        this.DataBind();
                    }
                    catch (SqlException ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }
                }
            }
        }
// Similar for UPDATE

我会感激任何给予的帮助

谢谢

1 个答案:

答案 0 :(得分:2)

Link关于如何使用Azure缓存。以下是Windows Server AppFabric

上的链接

从架构上讲,缓存必须在SQL Query之上实现一个级别。

顺便说一句,如果您是C#的新用户并正在开发基于网络的应用,我建议您查看Entity Framework,一个不错的MVVM pattern,也许可以使用ASP MVC。单独的实体框架将为您节省大量时间,代码将更易于维护。

修改

将项目添加到缓存的正确方法 - 这是一个示例。我们假设您有一个名为Employees的表。 您可以创建数据集并将查询结果填入该数据集。您可以将其保存在缓存中。

再次,请参阅实体框架,这将允许您轻松地执行此操作。基于上面的示例,EF将允许您在C#中创建一个Employee类,并将查询结果填入该类。

两种情况下的缓存代码都位于SQL Query之上。因此,使用GetEmployeeDetails()作为方法创建一个单独的类。发出对getEmployeeDetails()的调用,该调用命中缓存以查看数据是否存在。如果没有,它就会命中SQL。

将所有内容从page_load移到自己的类中。