나는 여기 IBaseContentModel
SQLite는-NET은 부모 클래스에서 기본 키를 인식 할 수 없습니다
public class FileDownloadContentModel : IBaseContentModel
{
public string url { get; set; }
public string filename { get; set; }
public int downloadPercentage { get; set; }
public DateTime dateDownloaded { get; set; }
public byte[] content { get; set; }
}
를 확장 내 수업 FileDownloadContentModel
이 IBaseContentModel
입니다이 : 어떤 이유 SQLite는 그물이없는 경우
public class IBaseContentModel
{
[PrimaryKey]
public int id { get; set; }
public IBaseContentModel()
{
id = GenerateID();
}
protected static int GenerateID()
{
DateTime value = DateTime.UtcNow;
//create Timespan by subtracting the value provided from the Unix Epoch
TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());
//return the total seconds (which is a UNIX timestamp)
return (int)span.TotalSeconds;
}
}
테이블 매핑을 가져올 때 기본 키를 인식합니다. 기본 키가 null임을 나타냅니다. 내 FileDownloadContentModel
클래스에 직접 id (기본 키)를 포함 시키면 기본 키를 id로 인식 할 수 있습니다.
이것은 알려진 버그입니까? 아니면 여기에 뭔가 잘못 있습니까? 어떤 도움을 주셔서 감사합니다, 감사합니다!
내가 더 지금 내 부분의 바보 같은 실수 그것으로 보았다
업데이트되었습니다. 두 sqlite "인스턴스"및 어떤 이유로 IBaseContentModel sqlite 다른 인스턴스를 사용하여 FileDownloadContentModel 이유는 기본 키 인식되지 않았습니다 (같은 인스턴스에서 아니기 때문에). 그리고 예를 들어 서로 다른 패키지 이름을 가진 완전히 다른 두 개의 sqlite.cs 파일을 의미합니다.
난 당신이 위의 준 정확한 코드 문제를 재현 할 수없는입니다. 삽입/삭제하려고하면 SQLite-Net이 기본 키를 찾습니다. 그의 답변에서 제안한 @RoadBump와 같이 귀하의베이스가 실제로 인터페이스 일 가능성이 있습니까? –
chou x를 살펴 주셔서 감사합니다. 나는 지금 그것을 더 바라 보았다. 그리고 나의 어리석은 실수. 두 sqlite "인스턴스"및 어떤 이유로 IBaseContentModel sqlite 다른 인스턴스를 사용하여 FileDownloadContentModel 이유는 기본 키 인식되지 않았습니다 (같은 인스턴스에서 아니기 때문에). 그리고 예를 들어 서로 다른 패키지 이름을 가진 완전히 다른 두 개의 sqlite.cs 파일을 의미합니다. – KrispyDonuts