【问题标题】:combined cache provider for azure in c#在 c# 中为 azure 组合缓存提供程序
【发布时间】:2013-05-13 17:19:42
【问题描述】:

对于我在天蓝色云中拥有并正在处理的网站,我需要实现“混合”缓存。

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

我对 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

我将不胜感激任何帮助

谢谢

【问题讨论】:

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


    【解决方案1】:

    Link 了解如何使用 Azure 缓存。这是Windows Server AppFabric上的链接

    在架构上,缓存必须在 SQL 查询之上实现。

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

    编辑

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

    再次,请参阅实体框架,它可以让您轻松做到这一点。在上述示例的基础上,EF 将允许您轻松地在 C# 中创建一个 Employee 类,并将查询结果填充到该类中。

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

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

    【讨论】:

    • 我碰到了你给我的链接,它真的很有帮助。不过,有几件事我不明白:它解释了如何在缓存中添加项目,如果项目是 sql 表记录,我该怎么做?还有一件事,我将所有缓存代码放在哪里?在 Page_Load?别的地方?
    • 编辑了我的答案以添加更多细节
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2012-12-08
    • 2013-06-11
    相关资源
    最近更新 更多