有一个自定义对象(前公司)和自定义对象列表(前雇员)需要保存在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; }
}
答案 0 :(得分:1)
如果您使用的是Sqlite.net-PCL,则可以存储整个对象。但不是blob类型。 此外,您必须为“包”对象设置单独的表。您可以将公司ID属性添加到包对象,以便您可以轻松找到项目。它的语法也更清晰。
db.CreateTable<Company>();
db.CreateTable<package>();
db.InsertAll(AlistOfCompanies);