EntityFramework 6 с System.Data.Sqlite PK переопределяется при вставке

#c# #entity-framework #sqlite #entity-framework-6 #system.data.sqlite

#c# #entity-framework #sqlite #entity-framework-6 #system.data.sqlite

Вопрос:

Я работаю над проектом, в котором я хочу проанализировать xml-файл в базе данных sqlite. У меня проблема, когда значение моего идентификатора (в данном случае TrackDataVersion ) переопределяется в тот момент, когда я вставляю его в базу данных. У меня есть следующий объект:

 public class TrackData
{
    private int trackDataVersion;
    // many other variables

    public int TrackDataVersion { get => trackDataVersion; set => trackDataVersion = value; }
    // many other properties

    private void FillAttribute(XmlNode node)
    {
        string id = node.Attributes[1].InnerText;
        string value = node.Attributes[2].InnerText;
        switch (id)
        {
            case "stredatversion":
                int.TryParse(value, out trackDataVersion);
                break;
            //many other cases
        }
    }
  

В моем databaseContext я установил DatabaseGenereratedOption для fluent API значение «NONE», поэтому оно не должно генерироваться:

 modelBuilder.Entity<TrackData>()
            .HasKey(trackData => trackData.TrackDataVersion)
            .Property(trackData => trackData.TrackDataVersion)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
//other entities

var sqliteConnectionInitializer = new SqliteDropCreateDatabaseWhenModelChanges<DatabaseContext>(modelBuilder);
        Database.SetInitializer(sqliteConnectionInitializer);
  

(Я также пробовал это с аннотацией, но это тоже не сработало)

Я отладил проблему, и до тех пор, пока я не вставлю объект в базу данных, он TrackDataVersion имеет значение 162 (указанное мной значение). Но когда я проверяю свою базу данных после вставки, значение изменилось на 1.

Что я делаю не так?

РЕДАКТИРОВАТЬ У меня проблема, так как я изменил тип данных с trackDataVersion double на int. До этого он работал нормально, но это не тот тип данных, который я хочу использовать.