在C#中为SQLite动态生成一个类

时间:2017-12-12 05:03:30

标签: sqlite

我正在使用Xamarin.Forms .Net Standard 1.4库和SQLite nuget。

我为我的数据库表/记录创建类,如下所示:

select * 
from table1 t1
where exists
(
select 1
from table1 t2
where t1.prim_key = t2.prim_key
and t2.hire_date between '2017-01-01' AND '2017-01-30'
)

我可以使用

创建/插入表/记录
namespace MyNamespace
{
    [Table("my_table")]
    public class MyRecord
    {
        [PrimaryKey, AutoIncrement, Column("_id")]
        public int ID { get; set; } = -1;

        [Unique, NotNull, Column("GUID")]
        public Guid GUID { get; set; } = Guid.NewGuid();

        public string Field1 { get; set; }

        public string Field1 { get; set; }
    }
}

我发现自己处于一个表在编译时没有已知列的情况,所以我无法创建一个类来描述它。有没有一种简单的方法可以动态生成一个类?

假设在运行时我需要创建一个包含以下列(所有文本)“NewField1”,“NewField2”的表。我意识到我可以为数据生成SQL命令。但是我失去了SQLite包装器的便利性。

我想动态创建一个类并根据需要添加属性,这样我仍然可以使用CreateTable<>和插入()等。这可能吗?会有效吗?或者我最好只使用Dictionary并创建SQL命令。

0 个答案:

没有答案