Xamarin的SQLite使用LINQ
问题描述:
我得到了一个xamarain SQLite表(原生Android/PCL):Xamarin的SQLite使用LINQ
[Table("Customer")]
public class Customer
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public Address Address{ get; set; }
}
“地址” 表示第二个表。
1)是否有可能当我打电话
connection.CreateTable<CustomerDto>();
因为它依赖于自动创建的“地址”表?
2)是否有可能使用LINQ表达自动正确的“地址”映射到这个“客户
答
在我的.NET标准库我使用的是:?
”源码网“: ”1.0.8“
”的SQLite净PCL“: ”1.3.1“
我一个pproach是为所有表创建“初始状态模型”,标记为抽象(所以不存在任何人可以实例化它们的风险),只定义数据库中必需的字段和主键(在我的情况下为GUID),使用只能在开始时创建表格。修改数据结构后始终使用ALTER指令。 在另一个命名空间中,所有模型都是重复的,这次是使用getters/setter和其他实用程序,我将它们用作“真实模型”。
为代表的关联模型我使用的字段为ID,另外一个为模型(刷新必要时):
public int IdAddress { get; set; }
[Ignore]
public Address Address { get; set; }
我不认为sqlite的网可以做你的要求,因为这是一个非常轻量级的orm,即使我可以选择不要因为我过去使用Hibernate的经验而自动化太多。
答
这听起来像你应该看看使用实体框架,因为这将允许您使用LINQ的SQLite。 Web上的标准库(非Entity框架)非常轻便,并且没有太多针对ORM的功能,例如您正在寻找的功能。
如果你正在寻找一个更轻量级的库,你可以利用这一点,但它不会让你写LINQ表达式,而无需编写自己的ORM: https://github.com/MelbourneDeveloper/SQLite.Net.Standard