我需要从我的网站的Entity Framework模型生成两个具有一对多关系的数据库表;博客和标签。博客可以包含许多标签,但标签只能属于一个博客。
我的博客模型包含ID属性(Guid)作为主键和Name属性(字符串)。相似性我的Tag模型由作为主键的ID属性(int)和Name属性(字符串)组成。 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之外的值?
答案 0 :(得分:1)
您的类应声明类似于以下代码。
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; };
}
答案 1 :(得分:0)
将RequiredAttribute添加到您的房产中。
[Required]
public virtual Blog Blog { get; set; }
答案 2 :(得分:0)
您应该将此字段添加到Tag类:
[Required]
public Guid BlogId { get; set; }