我是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个字符的产品。
感谢。
答案 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);