我是WP8(以及.net)的新手。我应该选择什么来在WP8,SQL CE或Sqlite中工作?
其次,如果我选择 Sqlite,那么 LINQ 是可能的(我应该使用)吗?
我已经浏览了许多链接,但没有得到确切的答案。
我开始使用 Sqlite(Nuget 项目)尝试一些示例,并使用 Sqlite 发现,我不需要使用创建/删除类型的查询,它也将有助于插入。那么我应该使用 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);
}
现在在代码中,我可以在数据库中插入数据,现在我想使用选择查询,这将仅获得产品名称大于 10 个字符的产品。
谢谢。
愿这会对你有所帮助。下面是从产品集合中仅获取名称超过 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);
}
我认为您对 LINQ 的意思实际上是实体框架的使用。LINQ 只是一种以压缩查询样式编写条件和循环的方法。您可以在代码中的任何地方使用它,它根本不绑定到数据库引擎。
实体框架允许您从数据库创建实际对象。现在,每当您在运行时添加或删除其中一个对象时,此更改都会反映在您的数据库中,因此您需要处理任何 SQL 字符串。
你可以很容易地使用SQLite和实体框架,有一些很好的教程,一如既往,谷歌是你的朋友。由于它是.net框架支持的功能,因此它应该像WP8上的魅力一样工作。
要从产品集合中仅获取名称超过 10 个字符的产品,请执行以下操作:
List<Product> myProducts = ProductList.Where(x => x.Name.Length > 10);