エンティティで同じタイプの 2 つのプロパティをマップしようとすると、次のエラーが発生します。
An exception was thrown while executing a resolve operation. See the InnerException for details. ---> Introducing FOREIGN KEY constraint 'FK_dbo.Client_dbo.Messagebox_OutboxId' on table 'Client' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
制約を作成できませんでした。以前のエラーを参照してください。(詳細については、内部例外を参照してください。)
このエラーは、同じタイプの小道具が 2 つあるという事実に関連していることを理解しています。
コードファースト+ EF流暢なAPIを使用してどのように行うことができますか?
シナリオ: それぞれClient
が持ってInbox
おり、Outbox
両方がどちらであるかMessagebox
public class BaseEntity
{
public int Id { get; set; }
}
public class Client : BaseEntity
{
/// <summary>
/// Gets or sets Client Alias
/// </summary>
public string Alias { get; set; }
/// <summary>
/// Gets or sets value indicating if the client was deleted
/// </summary>
public bool Deleted { get; set; }
/// <summary>
/// Gets or sets client's inbox
/// </summary>
public virtual Messagebox Inbox { get; set; }
/// <summary>
/// Gets or sets inbox Id
/// </summary>
public int InboxId { get; set; }
/// <summary>
/// Gets or sets client's outbox
/// </summary>
public virtual Messagebox Outbox { get; set; }
/// <summary>
/// Gets or sets outbox Id
/// </summary>
public int OutboxId { get; set; }
}
public class Messagebox : BaseEntity
{
public int ClientId { get; set; }
/// <summary>
/// Gets or sets the messagebox client
/// </summary>
public virtual Client Client { get; set; }
}