.
, :
public class Test
{
public int ID { get; set; }
public int IntDef { get; set; }
public bool BoolDef { get; set; }
public DateTime? DateDef { get; set; }
}
( , DateTime NULL)
:
modelBuilder.Entity<Test>().HasKey(a => a.ID);
modelBuilder.Entity<Test>().Property(s => s.DateDef).HasDefaultValueSql("GETDATE()");
modelBuilder.Entity<Test>().Property(s => s.IntDef).HasDefaultValueSql("1");
modelBuilder.Entity<Test>().Property(s => s.BoolDef).HasDefaultValue(true);
SQL, :
CREATE TABLE [Tests] (
[ID] int NOT NULL IDENTITY,
[BoolDef] bit NOT NULL DEFAULT 1,
[DateDef] datetime2 DEFAULT (GETDATE()),
[IntDef] int NOT NULL DEFAULT (1),
CONSTRAINT [PK_Tests] PRIMARY KEY ([ID])
);
Test - , insert:
INSERT INTO [Tests]
DEFAULT VALUES;
SELECT [ID], [BoolDef], [DateDef], [IntDef]
FROM [Tests]
WHERE @@ROWCOUNT = 1 AND [ID] = scope_identity();
, ( ) . [, EF-Core. EF6 ( ) , DatabaseGeneratedOption.Computed.
Test:
ID IntDef BoolDef DateDef
1 1 True 21-11-16 19:52:56
Test , , , , :
var item = new Test
{
IntDef = default(int),
BoolDef = default(bool),
DateDef = default(DateTime),
};
SQL:
exec sp_executesql N'SET NOCOUNT ON;
INSERT INTO [Tests] ([DateDef])
VALUES (@p0);
SELECT [ID], [BoolDef], [IntDef]
FROM [Tests]
WHERE @@ROWCOUNT = 1 AND [ID] = scope_identity();
',N'@p0 datetime2(7)',@p0='0001-01-01 00:00:00'
, EF , . , , DateTime , . DateDef .
:
ID IntDef BoolDef DateDef
1 1 True 01-01-01 0:00:00
, - !
:
EF-Core, .Net, , .Net (, false ).
, , , EF-Core .
, EF , ValueGeneratedNever(), :
modelBuilder.Entity<Test>().Property(s => s.IntDef)
.HasDefaultValueSql("1").ValueGeneratedNever();
, EF . , , , nullable, .
EF Core 1.1.0.