SQLite c#:如何在sqlite BLOB数据类型中保存和检索自定义对象?

时间:2016-01-29 09:02:01

标签: c# sqlite

有一个自定义对象(前公司)和自定义对象列表(前雇员)需要保存在BLOB数据类型中,下面是我尝试过的一段没有成功的代码。我试过了DbType.Binary,但没有锻炼。

下面是插入查询:

sql_cmd.Parameters.Add("@company", DbType.Byte); 
sql_cmd.Parameters["@company"].Value = (Company)root.company;


sql_cmd.Parameters.Add("@employees", DbType.Byte);
sql_cmd.Parameters["@employees"].Value = ((List< Employee >))root.employeeList;

例外:

System.FormatException was unhandled by user code.
Message=Input string was not in a correct format.


以下是相关课程

 class Company
    {
        public string id { get; set; }
        public string name { get; set; }
        public List<Package> packages { get; set; }
        public string description { get; set; }
    }

 class Employee
    {
        public string id { get; set; }
        public string name { get; set; }
        public object description { get; set; }
        public Address address { get; set; }
        public Contact contact { get; set; }
        public string enterpriseId { get; set; }
        public object createdDate { get; set; }
        public object modifiedDate { get; set; }
}

1 个答案:

答案 0 :(得分:1)

如果您使用的是Sqlite.net-PCL,则可以存储整个对象。但不是blob类型。 此外,您必须为“包”对象设置单独的表。您可以将公司ID属性添加到包对象,以便您可以轻松找到项目。它的语法也更清晰。

db.CreateTable<Company>();
db.CreateTable<package>();

db.InsertAll(AlistOfCompanies);