0

PropertyOwnerProperty、およびAddressの3 つのテーブルがあります。

PropertyOwnerには多くのPropertiesあります。

PropertyOwnerにはAddressがあります。

プロパティにはAddressもあります。

Entity Framework 4.4 の最初のコードは次のとおりです。

Table: PropertyOwner

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Required]
public Guid PropertyOwnerId { get; set; }

[Required]
[ForeignKey("Address")]
public Guid AddressId { get; set; }
public virtual Address Address { get; set; }


Table: Property

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Required]
public Guid PropertyId { get; set; }

[Required]
[ForeignKey("PropertyOwner")]
public Guid PropertyOwnerId { get; set; }
public virtual PropertyOwner PropertyOwner { get; set; }

[Required]
[ForeignKey("Address")]
public Guid AddressId { get; set; }
public virtual Address Address { get; set; }


Table: Address

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Required]
public Guid AddressId { get; set; }

[Required]
[StringLength(64)]
public string AddressLine1 { get; set; }

このデータベースを作成しようとすると、次のエラーが発生します。

The referential relationship will result in a cyclical reference that is not allowed. [ Constraint name = FK_dbo.PropertyOwner_dbo.Address_AddressId ]

データベースは、 PropertyAddressPropertyOwnerAddressが同じレコードであると考えていますか?

Propertyには独自のアドレスが必要であり、PropertyOwnerにも独自のAddressが必要であることを属性でどのように説明できますか?

ありがとう。

4

0 に答える 0