2 sınıfım var: İstemci ve Anket.Varlık Çerçeve Kodu İlk: Bir "Varsayılan" değer için yabancı bir tuşa nasıl açıklama eklenir?
Her İstemci birçok ankete sahip olabilir - ancak yalnızca bir tane varsayılan anket.
[dbo].[Clients]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[ClientName] [nvarchar](max) NULL,
[DefaultSurveyID] [int] NULL
)
Ama Anketi tablo ekstra yabancı anahtar vardır: Ben beklediğiniz gibi
public class Client
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string ClientName { get; set; }
public Nullable<int> DefaultSurveyID { get; set; }
[ForeignKey("DefaultSurveyID")]
public virtual Survey DefaultSurvey { get; set; }
public virtual ICollection<Survey> Surveys { get; set; }
}
public class Survey
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string SurveyName { get; set; }
[Required]
public int ClientID { get; set; }
[ForeignKey("ClientID")]
public virtual Client Client { get; set; }
}
Bu istemci tablo oluşturur:
böyle sınıfları tanımladıktan
[dbo].[Surveys]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[SurveyName] [nvarchar](max) NULL,
[ClientID] [int] NOT NULL,
[Client_ID] [int] NULL
)
Kod İlk olarak neden bu ilişkiyi oluşturuyor ve nasıl yapmam gerektiğini anlatıyorum?
farklı yolları: http://stackoverflow.com/q/5244920/150342 – Colin