データベースアーキテクチャがこのような場合、どのようにFluent APIを使用してマッピングを作成しますか?EFコードFluent APIを使用した最初の1対1マッピング
public class Users
{
public Users()
{
PermanentAddresses = new PermanentAddresses();
TemporaryAddresses = new TemporaryAddresses();
}
public int Id { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public virtual PermanentAddresses PermanentAddresses { get; set; }
public virtual TemporaryAddresses TemporaryAddresses { get; set; }
}
public class PermanentAddresses
{
// Primary Key and Foreign Key from Users class
public string Id { get; set; }
// Primary Key and Foreign Key from Addresses class
public int AddressId { get; set; }
public virtual Users Users { get; set; }
public virtual Addresses Addresses { get; set; }
}
public class TemporaryAddresses
{
// Primary Key and Foreign Key from Users class
public string Id { get; set; }
// Primary Key and Foreign Key from Addresses class
public int AddressId { get; set; }
public virtual Users Users { get; set; }
public virtual Addresses Addresses { get; set; }
}
public class Addresses
{
public Addresses()
{
PermanentAddresses = new PermanentAddresses();
TemporaryAddresses = new TemporaryAddresses();
Company = new Company();
}
public int Id { get; set; }
public string CompleteAddress { get; set; }
public virtual PermanentAddresses PermanentAddresses { get; set; }
public virtual TemporaryAddresses TemporaryAddresses { get; set; }
public virtual Company Company { get; set; }
}
私はこのエラーを取得しています。
タイプ「PermanentAddresses」と「Addresses」の間の関連付けの主な終点を特定できません。この関連付けの主な終点は、流暢なAPIまたはデータアノテーションのどちらかの関係を使用して明示的に構成する必要があります。
あなたの問題は、アライメントしていない外部キーの名前に関連している可能性があります。このテクニックは、modelBuilder.Entity()。HasRequired(pa => pa.Users).WithMany()。HasForeignKey(pa => pa.Id); http://weblogs.asp.net/manavi/associations-in-ef-4-1-code-first-part-5-one-to-one-foreign-key-associationsを参照してください。 –