EntityFramework5とUnitOfWork+リポジトリパターンを使用しています。
次のエンティティを作成しようとしています。
public partial class ViaggioAttivita
{
public System.Guid Id { get; set; }
public System.Guid IdViaggio { get; set; }
public virtual Viaggio Viaggio { get; set; }
}
public partial class Viaggio
{
public System.Guid Id { get; set; }
public virtual ICollection<ViaggioAttivita> ViaggiAttivita { get; set; }
}
IdViaggioにデータを入力する新しいViaggioAttivitaエンティティを作成すると、
ViaggioAttivita attivita = new ViaggioAttivita();
attivita.IdViaggio = ParentId;
unitOfWork.ViaggiAttivitaRepository.Insert(attivita);
ナビゲーションプロパティattivita.Viaggioは更新されません。
Idの代わりにattivita.Viaggioを直接更新した場合
ViaggioAttivita attivita = new ViaggioAttivita();
attivita.Viaggio = unitOfWork.ViaggiRepository.GetByID(ParentId);
unitOfWork.ViaggiAttivitaRepository.Insert(attivita);
もちろんViaggioは更新されますが、IdViaggioキーも更新されます。
私は何が欠けていますか?
なぜ私はこの違いを得るのですか?
.Save()を呼び出してみましたが、何も変わりません。
エンティティを手動で更新した場合にのみリレーションが更新されるようですが、キーのみを更新した場合はリレーションは更新されません。
ありがとうございました
編集1:
私はSQLServer2008、MVC3、Entity Framework 5(もちろんランタイムv4.0.30319)を使用しています。データベースファーストモード。2つのテーブルには関係があります(もちろん、そうでない場合は、2番目の方法を使用してキーにデータを入力しません)。
編集2:
私はいくつかのEDMX情報を貼り付けようとしています。
<EntityType Name="Viaggio">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Guid" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<NavigationProperty Name="ViaggiAttivita" Relationship="DatabaseModel.FK_ViaggiAttivita_Viaggi" FromRole="Viaggi" ToRole="ViaggiAttivita" />
</EntityType>
<EntityType Name="ViaggioAttivita">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Guid" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="IdViaggio" Type="Guid" Nullable="false" />
<NavigationProperty Name="Viaggio" Relationship="DatabaseModel.FK_ViaggiAttivita_Viaggi" FromRole="ViaggiAttivita" ToRole="Viaggi" />
</EntityType>
<AssociationSet Name="FK_ViaggiAttivita_Viaggi" Association="DatabaseModel.FK_ViaggiAttivita_Viaggi">
<End Role="Viaggi" EntitySet="Viaggi" />
<End Role="ViaggiAttivita" EntitySet="ViaggiAttivita" />
</AssociationSet>