Criei um model:
public class Tarefa
{
[Key]
public int ID { get; set; }
public int TipoTarefaID { get; set; }
[Display(Name = "Tipo de tarefa")]
public virtual TipoTarefa TipoTarefa { get; set; }
public string Assunto { get; set; }
[Required, Display(Name = "Data da criação")]
public DateTime DataCriacao { get; set; }
public int ClienteID { get; set; }
public virtual Cliente Cliente { get; set; }
public int ProcessoID { get; set; }
public virtual Processo Processo { get; set; }
}
Os atributos Cliente e Processo não são Obrigatórios durante o cadastro de uma nova tarefa.
Adiciono a Migration e faço o update-dabatase e olha o que aparece na estrutura da tabela, Cliente e Processo como NOT NULL
Por que isso acontece?
CREATE TABLE [dbo].[Tarefas] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[TipoTarefaID] INT NOT NULL,
[Assunto] NVARCHAR (MAX) NULL,
[DataCriacao] DATETIME NOT NULL,
[ClienteID] INT NOT NULL,
[ProcessoID] INT NOT NULL,
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,
CONSTRAINT [FK_dbo.Tarefas_dbo.TipoTarefas_TipoTarefaID] FOREIGN KEY ([TipoTarefaID]) REFERENCES [dbo].[TipoTarefas] ([ID]) ON DELETE CASCADE
);
GO
CREATE NONCLUSTERED INDEX [IX_TipoTarefaID]
ON [dbo].[Tarefas]([TipoTarefaID] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_ClienteID]
ON [dbo].[Tarefas]([ClienteID] ASC);
GO
CREATE NONCLUSTERED INDEX [IX_ProcessoID]
ON [dbo].[Tarefas]([ProcessoID] ASC);