我有一个名为Tarefa的模型(葡萄牙语任务):
public class Tarefa
{
[Key]
public int ID { get; set; }
[Required]
public string Assunto { get; set; }
public int ClienteID { get; set; }
public virtual Cliente Cliente { get; set; }
public int ProcessoID { get; set; }
public virtual Processo Processo { get; set; }
}
ClienteID和ProcessoID(不需要)
创建新的Tarefa时,我不需要选择它们。
在Scaffolding,add-migration和update-database之后,表定义显示:
CREATE TABLE [dbo].[Tarefas] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[Assunto] NVARCHAR (MAX) NOT NULL,
[ClienteID] INT NOT NULL,
[ProcessoID] INT NOT NULL,
CONSTRAINT [PK_dbo.Tarefas] PRIMARY KEY CLUSTERED ([ID] ASC),
CONSTRAINT [FK_dbo.Tarefas_dbo.Clientes_ClienteID] FOREIGN KEY ([ClienteID]) REFERENCES [dbo].[Clientes] ([ID]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.Tarefas_dbo.Processoes_Pasta (se ajuizado)] FOREIGN KEY ([ProcessoID]) REFERENCES [dbo].[Processoes] ([ID]) ON DELETE CASCADE,
);
为什么这两列不是NULL?
答案 0 :(得分:1)
默认情况下,外键字段不为空。如果您需要将任何外键专用于null,请在那里使用nullable。 喜欢用,
public int? ClienteID { get; set; }
而不是
public int ClienteID { get; set; }
同样适用于public int ProcessoID { get; set; }