私はこのようなモデルを持っています:
public class Entity
{
[Key, Required]
public virtual long EntityId { get; set; }
[Required]
public virtual string Name { get; set; }
public virtual long? ParentEntityId { get; set; }
}
これが私のテーブルです:
create table Entities(
EntityId bigint not null identity(1, 1),
Name nvarchar(64) not null,
ParentEntityId bigint null
)
ParentEntityIdは、EntityIdへの外部キーです。
エンティティエンティティを作成しようとすると、これは例外です。
Invalid column name 'ParentEntity_EntityId'.
EFがその特定の列にその規則を選択している理由はわかりませんが、これを行うと、次のようになります。
[Column("TryPickThisName")]
public virtual int? ParentEntityId { get; set; }
同じエラーが「TryPickThisName」列名でも表示されます。最後に、列名を正しく書き込むか、属性を削除すると、元のエラーメッセージが表示されます。