我正在一个项目中,我想将xml文件解析为sqlite数据库。我在将ID值(在这种情况下为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
中,我将使用流畅API的DatabaseGenereratedOption
设置为“ 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);
(我也尝试过使用批注,但它也不起作用)
我已经调试了问题,直到将Entity插入数据库TrackDataVersion
的值是162(我指定的值)。但是当我在插入后检查数据库时,该值更改为1。
我在做什么错了?
编辑
我遇到了问题,因为我将数据类型从trackDataVersion
从double更改为int。在此之前,它可以正常工作,但它不是我要使用的正确数据类型。