代码优先抑制外键生成
本文关键字:代码 | 更新日期: 2023-09-27 17:53:08
我们有一个具有许多实体的DB,我以三个实体Case, Task和Note为例。任何实体都可以拥有Note,我们决定采用以下DB设计。
Case:
- CaseId
- Title
Task:
- TaskId
- Title
Note:
- NoteId
- Desc
- ParentId (will contain the PK of Case/Task etc but without FK constraint)
poco将如下所示:
Case
{
CaseId
Title
Notes
}
Task
{
TaskId
Title
Notes
}
我们不希望有引用约束等,因为这些注释不会被删除。我们可以使用EDMX
对其进行建模,并希望使用代码优先方法。我们已经搜索了SO,并研究了多态关联等的建议。如果给出这种设计,首先使用代码建模的最佳方法是什么?
我建议您使用继承-它遵循您的描述:
public class EntityWithNotes
{
public int Id { get; set; }
public string Title { get; set; }
public Collection<Note> { get; set; }
}
public class Note
{
public int Id { get; set; }
public string Description { get; set; }
public int ParentId { get; set; }
}
public class Case : EntityWithNotes { /* ...*/ }
public class Task : EntityWithNotes { /* ...*/ }
…并使用外键关联。参考约束不只是关于删除。