C# 作为PrimaryKey EF Core 5的所有权
我已经创建了一个简单的表,在这个表中我希望将OwnedEntity作为表的主键 这是我的班级:C# 作为PrimaryKey EF Core 5的所有权,c#,entity-framework,entity-framework-core-5,C#,Entity Framework,Entity Framework Core 5,我已经创建了一个简单的表,在这个表中我希望将OwnedEntity作为表的主键 这是我的班级: public class UserCreationRequest { public EmailAddress Email { get; private set; } public string FirstName { get; private set; } public string LastName { get; private set; }
public class UserCreationRequest
{
public EmailAddress Email { get; private set; }
public string FirstName { get; private set; }
public string LastName { get; private set; }
public Guid Code { get; private set; }
public DateTime ExpiryDate { get; private set; }
}
迁移脚本输出没有给出任何特殊消息,但在使用--verbose参数运行它之后,我可以看到错误:
System.Reflection.TargetInvocationException:已引发异常
通过调用的目标。-->
System.InvalidOperationException:属性或导航“电子邮件”
无法添加到实体类型“UserCreationRequest”,因为
实体上已存在同名的属性或导航
键入“UserCreationRequest”
这是我的地图代码:
public class UserCreationRequestMap : IEntityTypeConfiguration<UserCreationRequest>
{
public void Configure(EntityTypeBuilder<UserCreationRequest> builder)
{
builder.HasKey(x => x.Email);
builder.OwnsOne(x => x.Email, p =>
{
p.Property(x => x.Value).HasColumnName("Email");
});
builder.ToTable("UsersCreationRequests");
}
}
公共类UserCreationRequestMap:IEntityTypeConfiguration
{
公共void配置(EntityTypeBuilder)
{
builder.HasKey(x=>x.Email);
builder.OwnsOne(x=>x.Email,p=>
{
p、 属性(x=>x.Value);
});
builder.ToTable(“UsersCreationRequests”);
}
}
我不知道这在EF中是否不可能实现,而且错误消息听起来很奇怪。有人面对过吗
谢谢