私はEntity Framework 4.3を使用しており、新しいエンティティを作成するときにナビゲーションプロパティを設定して既存のエンティティを参照しようとしていますが、save EFを呼び出すと、ナビゲーションプロパティを設定したテーブルにPK違反があると不平を言います(つまり、参照ではなく新しいレコードを作成しています!)。
既存の POCO を参照して EF が新しいデータベース レコードを作成しようとするのではなく、どのように接続できますか (ただし、単に ID を使用するのではなく、理想的には、別のクエリから取得した実際のエンティティを参照したい)?
前もって感謝します、
クリス
public class BusinessUnit
{
public int BusinessUnitID { get; set; }
public ExternalPlugin AccountsDataSourceModule { get; set; }
public ExternalPlugin OptionalContactsDataSourceModule { get; set; }
}
public BusinessUnit NewBusinessUnit(string name, ExternalPlugin accountsModuleId = null, ExternalPlugin contactsModuleId = null)
{
IUnitOfWork unitOfWork = UnitOfWorkFactory.CreateUnitOfWork();
BusinessUnit unit = new BusinessUnit();
unit.CompanyName = name;
unit .AccountsDataSourceModule = accountsModuleId; // this causes a problem
unit .OptionalContactsDataSourceModule = contactsModuleId; // as does this
unitOfWork.BusinessUnitRepository.Insert(unit);
unitOfWork.Save();
return unit;
}