簡體   English   中英

實體框架代碼優先中的不可空虛擬屬性 Model

[英]Non-Nullable Virtual Propery in Entity Framework Code-First Model

我需要從我站點的實體框架模型生成兩個具有一對多關系的數據庫表; 博客和標簽。 一個博客可以有多個標簽,但一個標簽只能屬於一個博客。

我的博客 model 由一個作為主鍵的 ID 屬性 (Guid) 和一個 Name 屬性(字符串)組成。 相似性 我的 Tag model 由作為主鍵的 ID 屬性 (int) 和 Name 屬性 (string) 組成。 標記 model 也有一個虛擬屬性 Blog,它應該為 Blog 表的 ID 列生成一個外鍵。

以下是我的 model 課程的摘錄:

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 以外的值?

您的 class 應聲明為類似於以下代碼。

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; };
}

RequiredAttribute添加到您的屬性中。

[Required]
public virtual Blog Blog { get; set; }

您應該將此字段添加到您的標簽 class:

[Required]
public Guid BlogId { get; set; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM