gpt4 book ai didi

c# - Entity Framework 代码优先模型中的不可空虚拟属性

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:22 25 4
gpt4 key购买 nike

我需要从我站点的 Entity Framework 模型生成两个具有一对多关系的数据库表;博客和标签。一个博客可以有多个标签,但一个标签只能属于一个博客。

我的博客模型由一个作为主键的 ID 属性 (Guid) 和一个 Name 属性(字符串)组成。相似性 我的 Tag 模型由作为主键的 ID 属性 (int) 和 Name 属性 (string) 组成。 Tag 模型还有一个虚拟属性 Blog,它应该为 Blog 表的 ID 列生成一个外键。

下面是我的模型类的摘录:

public class Blog
{
public Guid ID { get; set; }
public string Name { get; set; }
}

public class Tag
{
public int ID { get; set; }
public string Name { get; set; }

public virtual Blog Blog { get; set; }
}

当使用代码优先创建数据库时,Tag 表中的 Blog_ID 列允许插入 null 或随机 GUID。我如何使用代码优先方法强制它永远不允许空值或除现有且有效的博客 ID 以外的值?

最佳答案

您的类的声明应类似于以下代码。

using System.ComponentModel.DataAnnotations;
suing System.ComponentModel.DataAnnotations.Schema

public class Tag
{
public int ID { get; set; }
public string Name { get; set; }
[Required]
[ForeignKey("BlogId")]
public virtual Blog Blog { get; set; }

public virtual Guid BlogId { get; set; };
}

关于c# - Entity Framework 代码优先模型中的不可空虚拟属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50486486/

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