我有两个代码优先模型,Foo 和 FooState,其中 Foo 有一个可选的 FooState。
public class Foo
{
[Key]
public int FooId { get; set; }
public FooState FooState { get; set; }
}
public class FooState
{
[Key]
public int FooStateId { get; set; }
[Required]
public int State { get; set; }
[Required]
public Foo Foo { get; set; }
}
但是当我尝试像这样将外键添加到 FooState 时,这很好用
public class FooState
{
[Key]
public int FooStateId { get; set; }
[Required]
public int State { get; set; }
[ForeignKey("Foo")]
[Required]
public int FooId
public Foo Foo { get; set; }
}
这一切都失败了,因为 FooStateId 真的使用 FooId 作为它的主键。从数据库的角度来看,这是有道理的。
但是,我希望在保存 FooState 记录时不必填充 Foo 的实例,但仍保留所需的属性。
如果我想更改其状态,这将允许我在 dto 中发送一个 FooId 和状态,而不必从数据库中检索整个 Foo 对象。
我应该如何首先使用 EF 代码进行设置?