我创建了一个简单的项目。 Aded Sqlite和Sqlite扩展。但是当我创建表格时。表上没有建立Primary和ForeignKey关系。 有人能让我知道我做错了什么。
SQLiteConnection connection = new SQLiteConnection("me4.db", SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite);
connection.Execute("PRAGMA foreign_keys = ON");
connection.Commit();
connection.CreateTable<Group>();
connection.CreateTable<UserGroup>();
[Table("group")]
public class Group
{
public string DisplayName { get; set; }
public string Descripton { get; set; }
public bool IsPublic { get; set; }
public string SmtpAddress { get; set; }
[PrimaryKey]
public string Id { get; set; }
}
[Table("usergroup")]
public class UserGroup
{
public bool IsFavorite{ get; set; }
public string LastVisitedTime { get; set; }
[ForeignKey(typeof(Group),Unique=true)]
public string Id { get; set; }
}
答案 0 :(得分:0)
SQLite.Net不支持外键,SQLite-Net Extensions使用Indexed
属性。
主键按预期工作,不确定数据库浏览器未显示的原因。
要检查它,您可以尝试以下代码:
var group = new Group { Id = 1 };
connection.Insert(group); // Element inserted
connection.Insert(group); // ERROR: constrain violation