我有一个实体,该实体“必须”具有名为 Id 的属性。 EF Core希望将其用作密钥,但我想避免这种情况。
builder.HasKey(e => e.Id);流畅的API所做的与我想要的相反。
让我解释一下。
我有一个PlayerView实体和一个IEntityTypeConfiguration,它们为我的DbContext定义了一个视图。
public class PlayerView : EntityDto
{
public Guid Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
etc...
public class PlayerViewConfiguration : DataContextBaseEntityTypeConfiguration, IEntityTypeConfiguration<PlayerView>
{
public void Configure(EntityTypeBuilder<PlayerView> builder)
{
builder.ToTable(nameof(PlayerView));
builder.Metadata.IsQueryType = true;
// builder.HasKey(e => e.Id); **//TODO THE OPPOSITE PLEASE**
}
}
然后我将调用var queryable = context.Query
但是由于视图不能具有索引并且考虑到EF会推断Id属性的索引。因此,在构建模型时出现以下错误。
键{'Id'}不能添加到查询类型'PlayerView'。查询类型不能有键。
我只想告诉EF Core,请不要使用Id作为密钥。
BR