Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中为SQLite动态生成一个类_Sqlite - Fatal编程技术网

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

在C#中为SQLite动态生成一个类,sqlite,Sqlite,我正在使用Xamarin.Forms.Net标准1.4库和SQLite nuget 我为数据库表/记录创建类,如下所示: namespace MyNamespace { [Table("my_table")] public class MyRecord { [PrimaryKey, AutoIncrement, Column("_id")] public int ID { get; set; } = -1; [Unique

我正在使用Xamarin.Forms.Net标准1.4库和SQLite nuget

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

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; }
    }
}
我可以使用创建/插入表/记录

{
    SQLiteConnection conn = new SQLiteConnection(db_file);  
    conn.CreateTable<MyRecord>();   
    var record = new MyRecord {
        Field1 = "test",
        Field2 = "test"
    };  
    conn.Insert(record);    
    conn.Dispose();
}
{
SQLiteConnection conn=新的SQLiteConnection(db_文件);
conn.CreateTable();
var记录=新的MyRecord{
Field1=“测试”,
Field2=“测试”
};  
连接插入(记录);
conn.Dispose();
}
我发现自己处于这样的情况:一个表在编译时没有已知的列,所以我无法创建一个类来描述它。有没有一种简单的方法可以动态生成类

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


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

不确定你想要达到什么目标。如果您在运行时生成一个表,那么您究竟为什么要在它周围生成一个包装器呢?你不会从这个类中得到任何编译时的好处(现在已经太晚了),我想我看到的好处是不必自己生成SQL查询。我想使用LINQ等