如何使用WP8,SQL Compact Edition或Sqlite?

时间:2014-01-08 07:29:33

标签: c# sql linq sqlite windows-phone-8

我是WP8的新手(也是.net)。我应该选择在WP8,SQL CE或Sqlite中使用什么?

其次,如果我选择Sqlite,有可能(我应该使用)LINQ吗?

我已经完成了许多链接,但没有得到确切答案。

我开始尝试使用Sqlite(Nuget项目)的几个示例,并发现使用Sqlite,我不需要使用Create / Delete类查询,它也有助于插入。那么我应该使用LINQ而不是这些功能吗?

@Edit:添加了示例代码来说明我的观点 示例代码

public class Product
{
    public int ProductID { get; set; }
    public string ProductName { get; set; }
    public string Category { get; set; }
    public decimal UnitPrice { get; set; }
    public int UnitsInStock { get; set; }
}

private void DbInterLinq()
{   
SQLite.SQLiteConnection conn = new SQLiteConnection(DB_PATH);
conn.CreateTable<Product>();

InsertSampleinDB(conn);
GetDataFromDb(conn);
}

现在在代码中,我能够在db中插入数据,现在我想使用select查询,这将只获得产品名称大于10个字符的产品。

感谢。

2 个答案:

答案 0 :(得分:1)

愿这对您有所帮助。这是一个查询,只能从一系列产品中获取名称超过10个字符的产品:

 private void SelectFromDb()
    {   
    SQLite.SQLiteConnection conn = new SQLiteConnection(DB_PATH);
    //conn.CreateTable<Product>();
    //InsertSampleinDB(conn);
    List<Product> myProducts = conn.Table<Product>().ToList().Where(x => x.Name.Length > 10);
    }

答案 1 :(得分:0)

我认为您对LINQ的含义实际上是使用Entity Framework。 LINQ只是一种以压缩查询样式编写条件和循环的方法。您可以在代码中的任何位置使用它,它根本不会绑定到您的数据库引擎。

EntityFramework允许您从数据库中创建实际对象。现在,无论何时在运行时添加或删除其中一个对象,此更改都会反映在您的数据库中,因此您需要处理任何SQL字符串。

你可以轻松使用SQLite和实体框架,有一些很好的教程,一如既往,谷歌是你的朋友。由于它是.net框架的一个受支持的功能,它应该像WP8上的魅力一样工作。

仅从产品系列中获取名称超过10个字符的产品:

List<Product> myProducts = ProductList.Where(x => x.Name.Length > 10);