考虑以下数据库表:
CREATE TABLE [dbo].[Step]
(
[StepId] INT NOT NULL PRIMARY KEY IDENTITY,
[OrderIndex] INT NOT NULL
)
CREATE TABLE [dbo].[StepInput]
(
[StepInputId] INT NOT NULL PRIMARY KEY IDENTITY,
[StepId] INT NOT NULL,
[OrderIndex] INT NOT NULL,
CONSTRAINT [FK_StepInput_Step] FOREIGN KEY ([StepId]) REFERENCES [Step]([StepId]) ON DELETE CASCADE,
)
使用以下 POCO:
public class Step
{
public virtual int StepId { get; set; }
public virtual ICollection<StepInput> StepInputs { get; set; }
}
public class StepInput
{
public int StepInputId { get; set; }
public int StepId { get; set; }
public virtual int OrderIndex { get; set; }
}
我希望 StepInputs 由 OrderIndex 排序。有没有办法设置导航属性,以便它由 EF 自动排序,以便 Step 的用户不必每次都调用 StepInputs.OrderBy?
我正在使用数据库优先模型。
编辑:我确实意识到我可以向 Step 添加一个 OrderedInputs 属性,该属性返回 StepInputs.OrderBy(...),这解决了当前的问题,尽管我不确定性能影响。我仍然很好奇是否有办法在 EF 中设置它而无需使用自定义属性。