O código da entidade é o seguinte:
O código de inserção é o seguinte:
Nós só definimos o valor do nome e não atribuímos valor ao id, vamos dar uma olhada no que é a instrução SQL gerada??? , da seguinte forma:
exec: sp_executesql N'DECLARE @generated_keys table([Id] uniqueidentifier) INSERIR [dbo]. [TestTab] ([Nome]) SAÍDA inserida. [Id] PARA @generated_keys VALORES (@0) SELECT t.[Id] DE @generated_keys COMO G JOIN [dbo]. [TestTab] AS t ON g.[Id] = t.[Id] ONDE @@ROWCOUNT > 0',N'@0 nvarchar(32)', @0=N' arquitetowww.itsvse.com'
Descobrimos que a tabela INSERT TestTab insere apenas o campo Nome, o Id tem um valor padrão??? Descobrimos que
ef me ajudou a definir o tipo padrão de valor da chave primária Id, o valor padrão ou vinculação "(newsequentialid())", e usou a função newsequentialid(), que é introduzida da seguinte forma:
1.:A maior vantagem da função newsequentialid em relação à função newid é que, se você criar um índice em um campo UNIQUEIDENTIFIER, o novo valor gerado usando newid não é fixo, então o novo valor faz com que a mudança na árvore B+ do índice seja aleatória. Se o novo valor produzido pelo newsequentialid for regular, então a mudança da árvore de índice B+ é regular. Regularidade e irregularidade levam a melhorias no desempenho.
2: UNIQUEIDENTIFIER é algo muito conveniente de se fazer como chave primária, o que tem vantagens insubstituívelmente em operações como a fusão de dados No entanto, devido à descentralização dos GUIDs comuns, se a chave primária for adicionada a um índice agrupado, ela será muito menos eficiente ao inserir registros
SQL SERVER 2005 adiciona uma nova função chamada NEWSEQUENTIALID, que o MSDN explica: Crie um GUID na máquina especificada que seja maior do que qualquer GUID gerado anteriormente pela função. NEWSEQUENTIALID() não pode ser referenciado na consulta.
Nota: Isso significa que ele só pode ser usado como o VALOR PADRÃO de uma coluna de banco de dados, e não pode executar instruções como SELECT NEWSEQUENTIALID(). O GUID gerado pelo NEWSEQUENTIALID() é único nesse computador específico somente se o computador não possuir uma placa de rede.
Nota: Esta frase está errada, deveria ser que somente quando o computador tem uma placa de rede, o GUID gerado é único no mundo Você pode usar o NEWSEQUENTIALID() para gerar um GUID e reduzir a contenda de página no índice em nível de folha.
|