这是我们在sql语句中的内容,省略了一些字段名称以节省一些空间:
CREATE TABLE [dbo].[Payment](
[PaymentId] [uniqueidentifier] NOT NULL,
[ItemId] [int] NULL,
...
CONSTRAINT [PK_Payment] PRIMARY KEY CLUSTERED
(
[PaymentId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
我可能不能只说,
HasKey(p => p.PaymentId)
在Entity Framework Code First中生成这个复杂的CONSTRAINT
子句的正确方法是什么?
答案 0 :(得分:1)
我无法复制您的问题。当我使用以下代码时:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Adjustment>()
.HasKey(a => a.Id)
生成的sql如下:
CREATE TABLE [dbo].[Adjustment](
[Id] [uniqueidentifier] NOT NULL,
// additional unrelated fields removed
CONSTRAINT [PK_dbo.Adjustment] PRIMARY KEY CLUSTERED
(
[Id] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]