gpt4 book ai didi

entity-framework-core - 在 EF Core 中生成具有拥有实体的复合唯一约束/索引

转载 作者:行者123 更新时间:2023-12-03 19:33:47 25 4
gpt4 key购买 nike

我有一个拥有另一个实体的实体

public class Entity1
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int ID { get; set; }

public string Property { get; set; }

public Entity2 Description { get; set; }
}

public class Entity2
{
public string Test { get; set; }
}

我需要在 Entity1.Property 和 Entity2.Test 上创建索引。配置是这样的
builder.OwnsOne(pt => pt.Description);

builder.HasIndex(p => new { p.Property, p.Description.Test }).IsUnique();
//builder.HasIndex("Property", "Description_Test").IsUnique();

我尝试了上述两个代码,但它们不起作用。第一个说
The properties expression 'p => new <>f__AnonymousType3`7(Property = p.DeviceClassId, 
Test = p.Description.Test)' is not valid. The expression should represent a property
access: 't => t.MyProperty'. When specifying multiple properties use an anonymous type:
't => new { t.MyProperty1, t.MyProperty2 }'.
Parameter name: propertyAccessExpression

第二个说:
The property 'Description_test' cannot be added to the type 'Entity1' because there was no 
property type specified and there is no corresponding CLR property or field. To add a
shadow state property the property type must be specified.

这可以在不手动修改迁移的情况下实现吗?

最佳答案

显然 EF Core 尚不支持此功能。

在 GitHub 上查看此问题:
https://github.com/aspnet/EntityFrameworkCore/issues/11336

还提供了一种解决方法,我没有亲自测试过。

关于entity-framework-core - 在 EF Core 中生成具有拥有实体的复合唯一约束/索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51724974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com