1

我遵循了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; }
4

0 回答 0