gpt4 book ai didi

c# - 如何使用外键关联到不同表的 ID

转载 作者:搜寻专家 更新时间:2023-10-30 20:52:37 24 4
gpt4 key购买 nike

我正在尝试制作一个购物 list 应用程序,并且我有一个购物 list 实体和一个购物 list 项目实体。购物 list 应该有一个 ID 键和一些无关紧要的额外变量。购物 list 项目应该有一个 ID 键和一个与其购物 list ID 相关的外键。我该怎么做呢?我收到 UpdateDatabaseException。或者,如果有更好的方法来做到这一点,我将不胜感激学习如何做

购物 list

public class ShoppingList
{
[Key]
public int Id { get; set; }
}

购物 list 项

public class ShoppingListItem
{
[Key]
public int Id { get; set; }

[ForeignKey("ShoppingList")]
public int ShoppingListId { get; set; }
{

如果您需要更多类(class),请询问。我不想让这个线程膨胀

我得到了新的异常

"The INSERT statement conflicted with the FOREIGN KEY constraint \"FK_dbo.ShoppingListItem_dbo.ShoppingList_ShoppingListId\". The conflict occurred in database \"ShoppingListApp\", table \"dbo.ShoppingList\", column 'Id'.\r\nThe statement has been terminated."

最佳答案

如果我的理解有任何不正确之处,请告诉我。购物 list 表将有一个 id(它的主键)和其他列以及一个/列表示购物 list 项目信息。

一对多关系 表示:

ShoppingList --> ShoppingListItem1、ShoppingListItem2、ShoppingListItem3 等

其中 ShoppingListItem1 、 ShoppingListItem2 等指向 ShoppintListItem 表中的条目。

因此,类结构应该如下所示:

public class ShoppingList
{
[Key]
public int Id { get; set; }

public int ShoppingListItemId { get; set; }

[ForeignKey("ShoppingListItemId")]
public ShoppingListItem ShoppingListItem { get; set; }
}

public class ShoppingListItem
{
[Key]
public int Id { get; set; }
//other properties
}

在属性上添加注释以将其标记为主键和外键的引用:

http://www.entityframeworktutorial.net/code-first/foreignkey-dataannotations-attribute-in-code-first.aspx

此外,如果您想在 ShoppingListItem 表中使用外键,并且它指向 Shopping List 表,那么针对您面临的问题的代码和可能的更正应该是这样的:

public class ShoppingList
{
[Key]
public int Id { get; set; }
//Other Properties
}

public class ShoppingListItem
{
[Key]
public int Id { get; set; }
//other properties

public int ShoppingListId { get; set; }

[ForeignKey("ShoppingListId")]
public ShoppingList ShoppingList { get; set; }
}

关于c# - 如何使用外键关联到不同表的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444987/

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