在SQLiteNetExtensions中使用子项插入和更新不起作用

时间:2016-06-07 18:51:21

标签: c# sqlite xamarin sqlite-net sqlite-net-extensions

我已经按照https://bitbucket.org/twincoders/sqlite-net-extensions中的示例进行了操作,并且出现了一个非常奇怪的错误“System.ArgumentException:'System.Int32'类型的对象无法转换为'System.String'类型。”

public class AgendamentoMotorista 
    {




        [PrimaryKey, AutoIncrement]
        public int Id { get; set; }

        public int IdAgendamento { get; set; }

        public string DocumentoMotorista { get; set; }

        [OneToMany(CascadeOperations = CascadeOperation.All)]
        public List<AgendamentoAtivoConteinerDto> Conteineres { get; set; }
        }


public class AgendamentoAtivoConteinerDto
    {

        [PrimaryKey, AutoIncrement]
        public int Id2 { get; set; }

        [ForeignKey(typeof(AgendamentoMotorista))]
        public string Conteiner { get; set; }

        public string PesoBruto { get; set; }

        public string Imo { get; set; }

        [ManyToOne]
        public AgendamentoMotorista AgendamentoMotorista { get; set; }
    }

这些是我正在使用的课程,我正在建立一种关系。

_conexao = new SQLiteConnection(config.Plataforma, System.IO.Path.Combine(config.DiretorioDb, "MotoristasAgendamento2.db3"));



            _conexao.CreateTable<AgendamentoMotorista>();


            _conexao.CreateTable<AgendamentoAtivoConteinerDto>();
}
public void InsertWithChildren(AgendamentoMotorista agendamento)
        {
            _conexao.InsertWithChildren(agendamento);
        }

任何人都知道为什么会出现此错误?当我使用UpdateWithChildren时也会发生这种情况。

修改

我已经解决了这个问题,在ForeignKey之后我必须使用Int而不是字符串,修复就在这里:

[PrimaryKey, AutoIncrement]
    public int Id2 { get; set; }

    [ForeignKey(typeof(AgendamentoMotorista))]
    public int ConteinerId { get; set; }
    public string Conteiner { get; set; }

    public string PesoBruto { get; set; }

    public string Imo { get; set; }

    [ManyToOne]
    public AgendamentoMotorista AgendamentoMotorista { get; set; }

0 个答案:

没有答案