外键所需的属性

6

我正在考虑使用Entity Framework(采用代码优先方法)中的外键属性。 我希望确保此外键始终被设置,换句话说:它应该是必需的。

使用“Required”属性/数据注释对此是否是一个干净的解决方案?还是这个数据注释仅适用于用户输入?

1个回答

9
我认为您不需要在数据注释中使用required属性。如果已将其声明为
public int ForeignKeyName{get;set;}

根据EF的要求进行操作。如果它...
 public int? ForeignKeyName{get;set;}

如果使用实体框架约定,它将被视为可选的(可为空)。我不确定你在使用什么样的框架来进行 Web 开发(例如前端 ASP.NET MVC),因此需要根据具体情况考虑输入级别。


是的,我认为你是对的。谢谢。 换句话说,我将只集中在仅包含字符串的[Required]上。 - mosquito87
1
抱歉再次打扰。您确定您的说法吗?如果我不告诉模型这个ID,那么ID不就会变成0了吗? - mosquito87
你是在谈论这里的主键吗?请查看所有约定的详细信息http://msdn.microsoft.com/en-us/data/jj679962。 - Jayantha Lal Sirisena
@mosquito87,Jayantha是正确的。关于你的问题,如果你没有自己设置id,你也是正确的。Entity Framework Code First本身不支持这个功能,所以你必须提供一个导航属性和外键,这样Code First才能自动填充id。另一方面,Entity Framework(非Code First)支持这种情况,而不需要导航属性。 - Ibrahim Najjar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接