例:エンティティCUSTOMERは、EntityId#1によってマークされます。ユーザーが部門6位に属している場合、彼は顧客の#16と#31のレコードにアクセスすることができますが、彼は#14のために、その缶は、部門第3位で、ユーザーが見ることはできません。ここで
Table ACCESSCONTROL:
EntityId PrimaryKey DepartmentId
1 16 6
1 31 6
1 14 3
私は、ドメインで使用していたクラスの例:
Public Class Customer
Public Property Id As Integer
.......
Public Overridable Property Acl As ICollection(Of AccessControl)
End Class
Public Class AccessControl
Public Property EntityId As Integer
Public Property PrimaryKey As Integer
Public Property DepartmentId As Integer
End Class
どのように私は流暢なコードファーストアプローチを使用してDbContext定義にこの関係を記述することができますか? ありがとうございます。
データベースに外部キーはどのように定義されていますか?ヒント:EFはデータベースと同じルールを使用します(ユニークキーはサポートしません)。 –
こんにちは、データベースでは、ドメイン内のエンティティとDbContextに含まれていないDepartmentsテーブルを持つDepartmentIdフィールドの外部キーリレーションのみを定義しました。 AccessControlテーブルは、EntityIdフィールドでマークされたさまざまなエンティティに属するレコードのルールを含むことができるため、他のエンティティとの強い関係はありません。 AccessControlの3つのフィールドはすべて、テーブルの主キーを表していることに注意してください。 – yeswest72
'PrimaryKey'カラムは、複数のエンティティ(' EntityId'が異なる値を持つ場合)によって共有され、仮想リレーションを構築しますか? –