gpt4 book ai didi

c# - 引用继承类型的 UWP EF SQLite 抛出异常

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:47 26 4
gpt4 key购买 nike

我们想在 Completion 中引用一个继承的 Control,因为一个 Control 有一个可能的 Completions 列表,并保存选定的 Completion。我们的 table 是

public class Completion
{
public int CompletionId { get; set; }
public string Text { get; set; }

public virtual Control Control { get; set; }
}
public class Control : BaseControl
{
public int ControlId { get; set; }

public virtual Completion Completion { get; set; }

public virtual ICollection<Completion> Completions { get; set; }
}

这些表的迁移工作正常,但如果我们尝试向数据库添加 Completion,则会出现异常

{"SQLite Error 1: 'foreign key mismatch - \"Completion\" referencing \"Control\"'"}

我们像这样添加一个 Completion

var completion = new Completion { Text = "completion1"};
db.Completions.Add(完成);
db.SaveChanges();

最佳答案

从错误消息来看,您的问题是关于 SQLite 而不是 EF。

public virtual Control Control { get;放; 在您的 Completion 类上被视为您未定义的控制表的外键。

我的猜测是您不想将控件引用保存到 SQLite 中。所以在这种情况下,让 SQLite 忽略该列

[SQLite.Ignore]
public virtual Control Control { get; set; }

关于c# - 引用继承类型的 UWP EF SQLite 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34158072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com