Entity Frameworkで外部キーを苦労しています(1対多の関係)。タイプ 'Class1'のプロパティ 'MyField'のForeignKeyAttributeが無効です
のclass1:
public partial class Class1
{
public int Id { get; set; }
[ForeignKey("Class2_Id")]
public Class2 Class2{ get; set; }
...}
Class2:
public partial class Class2
{
public int Id { get; set; }
public virtual ICollection<Class1> Stuff{ get; set; }
...}
1)私はfluentAPIで試してみました: 第一試み:
modelBuilder.Entity<Class2>().HasMany<Class1>(p => p.Stuff).WithOptional().Map(m => m.MapKey("Class2_Id")).WillCascadeOnDelete();
第二試み:
modelBuilder.Entity<Class1>().HasRequired(i => i.Class2).WithMany().Map(m => m.MapKey("Class2_Id"));
2)fluentAPIなし: を私は宣言Class2
フィールドはこのようになります:
[Column("Class2")]
public int Id { get; set; }
:
[ForeignKey("Class2")]
public int Id { get; set; }
私はいつもこのエラーが出る:
The ForeignKeyAttribute on property 'Class2' on type 'Class1' is not valid. The foreign key name 'Class2_Id' was not found on the dependent type 'Class1'. The Name value should be a comma separated list of foreign key property names.
何が間違っている任意のアイデア?
thxです。
あなたがあなたの中にプロパティとして外部キーを持ってしたくないときにメソッドが使用されているmodelBuilder.Entity<Class2>().HasMany(p => p.Stuff)
.WithOptional(c=>c.Class2)
.Map(m => m.MapKey("Class2_Id"))
.WillCascadeOnDelete();
MapKey
:あなたは一方向の関係を定義しているので、正しい方法は次のようになり、あなたの流暢API構成で
グレート説明octavioccl。ありがとうございます! –
ようこそ);) – octavioccl