gpt4 book ai didi

c# - 如何在 SQLite-Net Extensions 中指定外键属性

转载 作者:行者123 更新时间:2023-11-30 15:24:53 25 4
gpt4 key购买 nike

如何指定引用特定属性而不是主键的外键?

例如 Stock 类有一个 uuid 属性。我想在使用此属性引用它的 Valuation 类中创建一个外键。

在下面的示例中,[ForeignKey(typeof(Stock))] 行引用了 Stock 类的 ID 属性,但我需要它来引用 UUID 属性。

我该怎么做?

public class Stock
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string UUID { get; set; }
[MaxLength(8)]
public string Symbol { get; set; }

[OneToMany(CascadeOperations = CascadeOperation.All)] // One to many relationship with Valuation
public List<Valuation> Valuations { get; set; }
}

public class Valuation
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }

[ForeignKey(typeof(Stock))] // Specify the foreign key
public string StockUUID { get; set; }
public DateTime Time { get; set; }
public decimal Price { get; set; }

[ManyToOne] // Many to one relationship with Stock
public Stock Stock { get; set; }
}

最佳答案

ForeignKey 总是引用另一个类的 PrimaryKey。在这种情况下,您的 PrimaryKey 是一个整数,但您正试图引用另一个字符串类型的属性。这不受支持,因此您要么引用主键,要么将 UUID 属性设为主键。

public class Stock
{
[PrimaryKey]
public string UUID { get; set; }
[MaxLength(8)]
public string Symbol { get; set; }

[OneToMany(CascadeOperations = CascadeOperation.All)] // One to many relationship with Valuation
public List<Valuation> Valuations { get; set; }
}

关于c# - 如何在 SQLite-Net Extensions 中指定外键属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32153336/

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