gpt4 book ai didi

c# - 如何在数据库中保存带有外键引用的字符串属性

转载 作者:行者123 更新时间:2023-11-30 17:43:36 24 4
gpt4 key购买 nike

我正在使用 Entity Framework 和 sql 数据库开发一个 asp.net mvc 项目。在某些操作中,我想保存一条通知消息,其中包含另一个模型用户的引用

两种模型如下

public class NotificationMessage
{
[Key]
public int Id { get; set; }
public int? FromUserId { get; set; }
[ForeignKey("FromUserId")]
public virtual User FromUser { get; set; }
public string Message { get; set; }

}


public class User
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
public string Name{ get; set; }
}

现在我在我的数据库表中添加了一个新的通知消息,消息属性就像

"new notification from user"+FromUser.Name

现在,如果我更改用户名,此消息不会更改,因为它在数据库中保存为静态消息。我想要的是这条消息将以一种方式保存在数据库中,如果我更改用户的 Name 属性,这条消息将显示更新后的用户名

最佳答案

如果您将一个裸string 持久化到数据库中,即使它是使用来自相关实体的一些数据构建的,它仍将是一个string。用于构造该字符串的表达式不会在您每次访问它时都重新求值(无论 EF,这是自然的 string 行为)。

您最好将Message 更改为计算属性:

public string Message
{
get { return "new notification from user" + FromUser.Name; }
}

关于c# - 如何在数据库中保存带有外键引用的字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30691054/

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