【问题标题】:Windows Phone 7.5 - Local SQL DatabaseWindows Phone 7.5 - 本地 SQL 数据库
【发布时间】:2012-02-15 11:30:33
【问题描述】:

我正在创建 WP7 应用程序。

在该应用程序中,我使用 LINQ to SQL 创建本地数据库。我创建了一个这样的类:

[Table]
public class User
{
    [Column(
        IsPrimaryKey = true,
        IsDbGenerated = true,
        DbType = "INT NOT NULL Identity",
        CanBeNull = false)]
    public int Id { get; set; }

    [Column]
    public string FirstName { get; set; }

    [Column]
    public string LastName { get; set; }     
}

我有如下数据上下文:

public class UserDataContext : DataContext
    {
        public static string connString = "Data Source=isostore:/Users.sdf";

        public UserDataContext(string connString)
            : base(connString)
        { }

        public Table<User> Users;
    }

我正在使用以下代码保存数据:

User user = new User
            {
                FirstName = tbFirstName.Text,
                LastName = tbLastName.Text,
                CreatedOn = DateTime.Now
            };
using (var db = new UserDataContext(UserDataContext.connString))
            {
                db.Users.InsertOnSubmit(user);
                db.SubmitChanges();
            }

但我的问题是:在保存用户列表时,有诸如 “Save for 1 Day”“30 days”“forever”之类的单选框如果我选择“一天”,我必须保存 1 天,那么本地数据库中的用户应该在一天后删除,如果我选择“30 天”,它应该在 30 天后删除,如果我选择“永远” "它不应该被删除

我该怎么做?

提前致谢。

【问题讨论】:

  • 你能输入 expiresOn 日期吗?那么他记录的每个查询检查都没有过期?并定期清除过期记录?
  • 这是唯一的解决方案。但我想运行作业(如在 sql server 中),以便在到期日期发生时自动删除。
  • 请告诉我如何删除隔离存储中的表?

标签: linq-to-sql windows-phone-7 local-database


【解决方案1】:

我会在表格中添加另一列(到期日期)。 然后,我将使用简单查询清除数据

DELETE FROM User    
WHERE (expiryDate < GETDATE())

你也可以在 Linq2Sql 中做到这一点

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多